DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
from typing import cast, ClassVar, Optional, Dict, List, Set
|
|
|
|
from dataclasses import dataclass
|
2023-02-26 05:35:03 +00:00
|
|
|
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
from BaseClasses import ItemClassification, Location, Region
|
|
|
|
from .Items import DS3ItemCategory, item_dictionary
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
# Regions in approximate order of reward, mostly measured by how high-quality the upgrade items are
|
|
|
|
# in each region.
|
|
|
|
region_order = [
|
|
|
|
"Cemetery of Ash",
|
|
|
|
"Firelink Shrine",
|
|
|
|
"High Wall of Lothric",
|
|
|
|
"Greirat's Shop",
|
|
|
|
"Undead Settlement",
|
|
|
|
"Road of Sacrifices",
|
|
|
|
"Farron Keep",
|
|
|
|
"Cathedral of the Deep",
|
|
|
|
"Catacombs of Carthus",
|
|
|
|
"Smouldering Lake",
|
|
|
|
"Irithyll of the Boreal Valley",
|
|
|
|
"Irithyll Dungeon",
|
|
|
|
"Karla's Shop",
|
|
|
|
# The first half of Painted World has one Titanite Slab but mostly Large Titanite Shards,
|
|
|
|
# much like Irithyll Dungeon.
|
|
|
|
"Painted World of Ariandel (Before Contraption)",
|
|
|
|
"Anor Londo",
|
|
|
|
"Profaned Capital",
|
|
|
|
# The second half of Painted World has two Titanite Chunks and two Titanite Slabs, which
|
|
|
|
# puts it on the low end of the post-Lothric Castle areas in terms of rewards.
|
|
|
|
"Painted World of Ariandel (After Contraption)",
|
|
|
|
"Lothric Castle",
|
|
|
|
"Consumed King's Garden",
|
|
|
|
"Untended Graves",
|
|
|
|
# List this late because it contains a Titanite Slab in the base game
|
|
|
|
"Firelink Shrine Bell Tower",
|
|
|
|
"Grand Archives",
|
|
|
|
"Archdragon Peak",
|
|
|
|
"Kiln of the First Flame",
|
|
|
|
# Both areas of DLC2 have premium rewards.
|
|
|
|
"Dreg Heap",
|
|
|
|
"Ringed City",
|
|
|
|
]
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
|
|
|
|
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
@dataclass
|
|
|
|
class DS3LocationData:
|
|
|
|
__location_id: ClassVar[int] = 100000
|
|
|
|
"""The next location ID to use when creating location data."""
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
|
|
|
|
name: str
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
"""The name of this location according to Archipelago.
|
|
|
|
|
|
|
|
This needs to be unique within this world."""
|
|
|
|
|
|
|
|
default_item_name: Optional[str]
|
|
|
|
"""The name of the item that appears by default in this location.
|
|
|
|
|
|
|
|
If this is None, that indicates that this location is an "event" that's
|
|
|
|
automatically considered accessed as soon as it's available. Events are used
|
|
|
|
to indicate major game transitions that aren't otherwise gated by items so
|
|
|
|
that progression balancing and item smoothing is more accurate for DS3.
|
|
|
|
"""
|
|
|
|
|
|
|
|
ap_code: Optional[int] = None
|
|
|
|
"""Archipelago's internal ID for this location (also known as its "address")."""
|
|
|
|
|
|
|
|
region_value: int = 0
|
|
|
|
"""The relative value of items in this location's region.
|
|
|
|
|
|
|
|
This is used to sort locations when placing items like the base game.
|
|
|
|
"""
|
|
|
|
|
|
|
|
static: Optional[str] = None
|
|
|
|
"""The key in the static randomizer's Slots table that corresponds to this location.
|
|
|
|
|
|
|
|
By default, the static randomizer chooses its location based on the region and the item name.
|
|
|
|
If the item name is unique across the whole game, it can also look it up based on that alone. If
|
|
|
|
there are multiple instances of the same item type in the same region, it will assume its order
|
|
|
|
(in annotations.txt) matches Archipelago's order.
|
|
|
|
|
|
|
|
In cases where this heuristic doesn't work, such as when Archipelago's region categorization or
|
|
|
|
item name disagrees with the static randomizer's, this field is used to provide an explicit
|
|
|
|
association instead.
|
|
|
|
"""
|
|
|
|
|
|
|
|
missable: bool = False
|
|
|
|
"""Whether this item is possible to permanently lose access to.
|
|
|
|
|
|
|
|
This is also used for items that are *technically* possible to get at any time, but are
|
|
|
|
prohibitively difficult without blocking off other checks (items dropped by NPCs on death
|
|
|
|
generally fall into this category).
|
|
|
|
|
|
|
|
Missable locations are always marked as excluded, so they will never contain
|
|
|
|
progression or useful items.
|
|
|
|
"""
|
|
|
|
|
|
|
|
dlc: bool = False
|
|
|
|
"""Whether this location is only accessible if the DLC is enabled."""
|
|
|
|
|
|
|
|
ngp: bool = False
|
|
|
|
"""Whether this location only contains an item in NG+ and later.
|
|
|
|
|
|
|
|
By default, these items aren't randomized or included in the randomization pool, but an option
|
|
|
|
can be set to enable them even for NG runs."""
|
|
|
|
|
|
|
|
npc: bool = False
|
|
|
|
"""Whether this item is contingent on killing an NPC or following their quest."""
|
|
|
|
|
|
|
|
prominent: bool = False
|
|
|
|
"""Whether this is one of few particularly prominent places for items to appear.
|
|
|
|
|
|
|
|
This is a small number of locations (boss drops and progression locations)
|
|
|
|
intended to be set as priority locations for players who don't want a lot of
|
|
|
|
mandatory checks.
|
|
|
|
|
|
|
|
For bosses with multiple drops, only one should be marked prominent.
|
|
|
|
"""
|
|
|
|
|
|
|
|
progression: bool = False
|
|
|
|
"""Whether this location normally contains an item that blocks forward progress."""
|
|
|
|
|
|
|
|
boss: bool = False
|
|
|
|
"""Whether this location is a reward for defeating a full boss."""
|
|
|
|
|
|
|
|
miniboss: bool = False
|
|
|
|
"""Whether this location is a reward for defeating a miniboss.
|
|
|
|
|
|
|
|
The classification of "miniboss" is a bit fuzzy, but we consider them to be enemies that are
|
|
|
|
visually distinctive in their locations, usually bigger than normal enemies, with a guaranteed
|
|
|
|
item drop. NPCs are never considered minibosses, and some normal-looking enemies with guaranteed
|
|
|
|
drops aren't either (these are instead classified as hidden locations)."""
|
|
|
|
|
|
|
|
drop: bool = False
|
|
|
|
"""Whether this is an item dropped by a (non-boss) enemy.
|
|
|
|
|
|
|
|
This is automatically set to True if miniboss, mimic, lizard, or hostile_npc is True.
|
|
|
|
"""
|
|
|
|
|
|
|
|
mimic: bool = False
|
|
|
|
"""Whether this location is dropped by a mimic."""
|
|
|
|
|
|
|
|
hostile_npc: bool = False
|
|
|
|
"""Whether this location is dropped by a hostile NPC.
|
|
|
|
|
|
|
|
An "NPC" is specifically a human (or rather, ash) is built like a player character rather than a
|
|
|
|
monster. This includes both scripted invaders and NPCs who are always on the overworld. It does
|
|
|
|
not include initially-friendly NPCs who become hostile as part of a quest or because you attack
|
|
|
|
them.
|
|
|
|
"""
|
|
|
|
|
|
|
|
lizard: bool = False
|
|
|
|
"""Whether this location is dropped by a (small) Crystal Lizard."""
|
|
|
|
|
|
|
|
shop: bool = False
|
|
|
|
"""Whether this location can appear in an NPC's shop.
|
|
|
|
|
|
|
|
Items like Lapp's Set which can appear both in the overworld and in a shop
|
|
|
|
should still be tagged as shop.
|
|
|
|
"""
|
|
|
|
|
|
|
|
conditional: bool = False
|
|
|
|
"""Whether this location is conditional on a progression item.
|
|
|
|
|
|
|
|
This is used to track locations that won't become available until an unknown amount of time into
|
|
|
|
the run, and as such shouldn't have "similar to the base game" items placed in them.
|
|
|
|
"""
|
|
|
|
|
|
|
|
hidden: bool = False
|
|
|
|
"""Whether this location is particularly tricky to find.
|
|
|
|
|
|
|
|
This is for players without an encyclopedic knowledge of DS3 who don't want to get stuck looking
|
|
|
|
for an illusory wall or one random mob with a guaranteed drop.
|
|
|
|
"""
|
|
|
|
|
|
|
|
@property
|
|
|
|
def is_event(self) -> bool:
|
|
|
|
"""Whether this location represents an event rather than a specific item pickup."""
|
|
|
|
return self.default_item_name is None
|
|
|
|
|
|
|
|
def __post_init__(self):
|
|
|
|
if not self.is_event:
|
|
|
|
self.ap_code = self.ap_code or DS3LocationData.__location_id
|
|
|
|
DS3LocationData.__location_id += 1
|
|
|
|
if self.miniboss or self.mimic or self.lizard or self.hostile_npc: self.drop = True
|
|
|
|
|
|
|
|
def location_groups(self) -> List[str]:
|
|
|
|
"""The names of location groups this location should appear in.
|
|
|
|
|
|
|
|
This is computed from the properties assigned to this location."""
|
|
|
|
names = []
|
|
|
|
if self.prominent: names.append("Prominent")
|
|
|
|
if self.progression: names.append("Progression")
|
|
|
|
if self.boss: names.append("Boss Rewards")
|
|
|
|
if self.miniboss: names.append("Miniboss Rewards")
|
|
|
|
if self.mimic: names.append("Mimic Rewards")
|
|
|
|
if self.hostile_npc: names.append("Hostile NPC Rewards")
|
|
|
|
if self.npc: names.append("Friendly NPC Rewards")
|
|
|
|
if self.lizard: names.append("Small Crystal Lizards")
|
|
|
|
if self.hidden: names.append("Hidden")
|
|
|
|
|
|
|
|
default_item = item_dictionary[cast(str, self.default_item_name)]
|
|
|
|
names.append({
|
|
|
|
DS3ItemCategory.WEAPON_UPGRADE_5: "Weapons",
|
|
|
|
DS3ItemCategory.WEAPON_UPGRADE_10: "Weapons",
|
|
|
|
DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE: "Weapons",
|
|
|
|
DS3ItemCategory.SHIELD: "Shields",
|
|
|
|
DS3ItemCategory.SHIELD_INFUSIBLE: "Shields",
|
|
|
|
DS3ItemCategory.ARMOR: "Armor",
|
|
|
|
DS3ItemCategory.RING: "Rings",
|
|
|
|
DS3ItemCategory.SPELL: "Spells",
|
|
|
|
DS3ItemCategory.MISC: "Miscellaneous",
|
|
|
|
DS3ItemCategory.UNIQUE: "Unique",
|
|
|
|
DS3ItemCategory.BOSS: "Boss Souls",
|
|
|
|
DS3ItemCategory.SOUL: "Small Souls",
|
|
|
|
DS3ItemCategory.UPGRADE: "Upgrade",
|
|
|
|
DS3ItemCategory.HEALING: "Healing",
|
|
|
|
}[default_item.category])
|
|
|
|
if default_item.classification == ItemClassification.progression:
|
|
|
|
names.append("Progression")
|
|
|
|
|
|
|
|
return names
|
DS3: Added a few new items and locations (#1059)
* Update items_data.py
added `Red and White Round Shield`, `Crystal Scroll`, `Magic Stoneplate Ring`, and `Outrider Knight` gear.
* Update locations_data.py
Added `US: Red and White Round Shield`, `CKG: Magic Stoneplate Ring`, `GA: Outrider Knight` set, and `GA: Crystal Scroll`
* Update __init__.py
Add `Karla's Ashes` requirements
* Update items_data.py
Add `Irithyll Rapier, Hollow's Ashes, Irina's Ashes, Karla's Ashes, Cornyx's Ashes, and Orbeck's Ashes`
* Update locations_data.py
Add `Irithyll Rapier, Hollow's Ashes, Irina's Ashes, Karla's Ashes, Orbeck's Ashes, and Cornyx's Ashes`
* Update items_data.py
removed "hollows ashes"
* Update locations_data.py
remove "hollows ashes"
* DS3: Increment data_version
* DS3: Fix item name in rule
* DS3: Set required client version to 0.3.6 and added offsets between items and location tables for backward compatibility
* DS3: Resolve Python 3.8 compatibility
* DS3: Removed useless region for locations IDs consistency
* DS3: Changed i in loop
Co-authored-by: Br00ty <83629348+Br00ty@users.noreply.github.com>
2022-10-29 11:35:33 +00:00
|
|
|
|
|
|
|
|
|
|
|
class DarkSouls3Location(Location):
|
|
|
|
game: str = "Dark Souls III"
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
data: DS3LocationData
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
|
|
|
|
def __init__(
|
|
|
|
self,
|
|
|
|
player: int,
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
data: DS3LocationData,
|
|
|
|
parent: Optional[Region] = None,
|
|
|
|
event: bool = False):
|
|
|
|
super().__init__(player, data.name, None if event else data.ap_code, parent)
|
|
|
|
self.data = data
|
|
|
|
|
|
|
|
|
|
|
|
# Naming conventions:
|
|
|
|
#
|
|
|
|
# * The regions in item names should match the physical region where the item is
|
|
|
|
# acquired, even if its logical region is different. For example, Irina's
|
|
|
|
# inventory appears in the "Undead Settlement" region because she's not
|
|
|
|
# accessible until there, but it begins with "FS:" because that's where her
|
|
|
|
# items are purchased.
|
|
|
|
#
|
|
|
|
# * Avoid using vanilla enemy placements as landmarks, because these are
|
|
|
|
# randomized by the enemizer by default. Instead, use generic terms like
|
|
|
|
# "mob", "boss", and "miniboss".
|
|
|
|
#
|
|
|
|
# * Location descriptions don't need to direct the player to the precise spot.
|
|
|
|
# You can assume the player is broadly familiar with Dark Souls III or willing
|
|
|
|
# to look at a vanilla guide. Just give a general area to look in or an idea
|
|
|
|
# of what quest a check is connected to. Terseness is valuable: try to keep
|
|
|
|
# each location description short enough that the whole line doesn't exceed
|
|
|
|
# 100 characters.
|
|
|
|
#
|
|
|
|
# * Use "[name] drop" for items that require killing an NPC who becomes hostile
|
|
|
|
# as part of their normal quest, "kill [name]" for items that require killing
|
|
|
|
# them even when they aren't hostile, and just "[name]" for items that are
|
|
|
|
# naturally available as part of their quest.
|
|
|
|
location_tables: Dict[str, List[DS3LocationData]] = {
|
|
|
|
"Cemetery of Ash": [
|
|
|
|
DS3LocationData("CA: Soul of a Deserted Corpse - right of spawn",
|
|
|
|
"Soul of a Deserted Corpse"),
|
|
|
|
DS3LocationData("CA: Firebomb - down the cliff edge", "Firebomb x5"),
|
|
|
|
DS3LocationData("CA: Titanite Shard - jump to coffin", "Titanite Shard"),
|
|
|
|
DS3LocationData("CA: Soul of an Unknown Traveler - by miniboss",
|
|
|
|
"Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("CA: Speckled Stoneplate Ring+1 - by miniboss",
|
|
|
|
"Speckled Stoneplate Ring+1", ngp=True),
|
|
|
|
DS3LocationData("CA: Titanite Scale - miniboss drop", "Titanite Scale", miniboss=True),
|
|
|
|
DS3LocationData("CA: Coiled Sword - boss drop", "Coiled Sword", prominent=True,
|
|
|
|
progression=True, boss=True),
|
|
|
|
],
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
"Firelink Shrine": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
# Ludleth drop, does not permanently die
|
|
|
|
DS3LocationData("FS: Skull Ring - kill Ludleth", "Skull Ring", hidden=True, drop=True,
|
|
|
|
npc=True),
|
|
|
|
|
|
|
|
# Sword Master drops
|
|
|
|
DS3LocationData("FS: Uchigatana - NPC drop", "Uchigatana", hostile_npc=True),
|
|
|
|
DS3LocationData("FS: Master's Attire - NPC drop", "Master's Attire", hostile_npc=True),
|
|
|
|
DS3LocationData("FS: Master's Gloves - NPC drop", "Master's Gloves", hostile_npc=True),
|
|
|
|
|
|
|
|
DS3LocationData("FS: Broken Straight Sword - gravestone after boss",
|
|
|
|
"Broken Straight Sword"),
|
|
|
|
DS3LocationData("FS: Homeward Bone - cliff edge after boss", "Homeward Bone"),
|
|
|
|
DS3LocationData("FS: Ember - path right of Firelink entrance", "Ember"),
|
|
|
|
DS3LocationData("FS: Soul of a Deserted Corpse - bell tower door",
|
|
|
|
"Soul of a Deserted Corpse"),
|
|
|
|
DS3LocationData("FS: East-West Shield - tree by shrine entrance", "East-West Shield"),
|
|
|
|
DS3LocationData("FS: Homeward Bone - path above shrine entrance", "Homeward Bone"),
|
|
|
|
DS3LocationData("FS: Ember - above shrine entrance", "Ember"),
|
|
|
|
DS3LocationData("FS: Wolf Ring+2 - left of boss room exit", "Wolf Ring+2", ngp=True),
|
|
|
|
# Leonhard (quest)
|
|
|
|
DS3LocationData("FS: Cracked Red Eye Orb - Leonhard", "Cracked Red Eye Orb x5",
|
|
|
|
missable=True, npc=True),
|
|
|
|
# Leonhard (kill or quest), missable because he can disappear sometimes
|
|
|
|
DS3LocationData("FS: Lift Chamber Key - Leonhard", "Lift Chamber Key", missable=True,
|
|
|
|
npc=True, drop=True),
|
|
|
|
|
|
|
|
# Shrine Handmaid shop
|
|
|
|
DS3LocationData("FS: White Sign Soapstone - shop", "White Sign Soapstone", shop=True),
|
|
|
|
DS3LocationData("FS: Dried Finger - shop", "Dried Finger", shop=True),
|
|
|
|
DS3LocationData("FS: Tower Key - shop", "Tower Key", progression=True, shop=True),
|
|
|
|
DS3LocationData("FS: Ember - shop", "Ember", static='99,0:-1:110000:', shop=True),
|
|
|
|
DS3LocationData("FS: Farron Dart - shop", "Farron Dart", static='99,0:-1:110000:',
|
|
|
|
shop=True),
|
|
|
|
DS3LocationData("FS: Soul Arrow - shop", "Soul Arrow", static='99,0:-1:110000:',
|
|
|
|
shop=True),
|
|
|
|
DS3LocationData("FS: Heal Aid - shop", "Heal Aid", shop=True),
|
|
|
|
DS3LocationData("FS: Alluring Skull - Mortician's Ashes", "Alluring Skull", shop=True,
|
|
|
|
conditional=True),
|
|
|
|
DS3LocationData("FS: Ember - Mortician's Ashes", "Ember",
|
|
|
|
static='99,0:-1:110000,70000100:', shop=True, conditional=True),
|
|
|
|
DS3LocationData("FS: Grave Key - Mortician's Ashes", "Grave Key", shop=True,
|
|
|
|
conditional=True),
|
|
|
|
DS3LocationData("FS: Life Ring - Dreamchaser's Ashes", "Life Ring", shop=True,
|
|
|
|
conditional=True),
|
|
|
|
# Only if you say where the ashes were found
|
|
|
|
DS3LocationData("FS: Hidden Blessing - Dreamchaser's Ashes", "Hidden Blessing",
|
|
|
|
missable=True, shop=True),
|
|
|
|
DS3LocationData("FS: Lloyd's Shield Ring - Paladin's Ashes", "Lloyd's Shield Ring",
|
|
|
|
shop=True, conditional=True),
|
|
|
|
DS3LocationData("FS: Ember - Grave Warden's Ashes", "Ember",
|
|
|
|
static='99,0:-1:110000,70000103:', shop=True, conditional=True),
|
|
|
|
# Prisoner Chief's Ashes
|
|
|
|
DS3LocationData("FS: Karla's Pointed Hat - Prisoner Chief's Ashes", "Karla's Pointed Hat",
|
|
|
|
static='99,0:-1:110000,70000105:', shop=True, conditional=True),
|
|
|
|
DS3LocationData("FS: Karla's Coat - Prisoner Chief's Ashes", "Karla's Coat",
|
|
|
|
static='99,0:-1:110000,70000105:', shop=True, conditional=True),
|
|
|
|
DS3LocationData("FS: Karla's Gloves - Prisoner Chief's Ashes", "Karla's Gloves",
|
|
|
|
static='99,0:-1:110000,70000105:', shop=True, conditional=True),
|
|
|
|
DS3LocationData("FS: Karla's Trousers - Prisoner Chief's Ashes", "Karla's Trousers",
|
|
|
|
static='99,0:-1:110000,70000105:', shop=True, conditional=True),
|
|
|
|
DS3LocationData("FS: Xanthous Overcoat - Xanthous Ashes", "Xanthous Overcoat", shop=True,
|
|
|
|
conditional=True),
|
|
|
|
DS3LocationData("FS: Xanthous Gloves - Xanthous Ashes", "Xanthous Gloves", shop=True,
|
|
|
|
conditional=True),
|
|
|
|
DS3LocationData("FS: Xanthous Trousers - Xanthous Ashes", "Xanthous Trousers", shop=True,
|
|
|
|
conditional=True),
|
|
|
|
DS3LocationData("FS: Ember - Dragon Chaser's Ashes", "Ember",
|
|
|
|
static='99,0:-1:110000,70000108:', shop=True, conditional=True),
|
|
|
|
DS3LocationData("FS: Washing Pole - Easterner's Ashes", "Washing Pole", shop=True,
|
|
|
|
conditional=True),
|
|
|
|
DS3LocationData("FS: Eastern Helm - Easterner's Ashes", "Eastern Helm", shop=True,
|
|
|
|
conditional=True),
|
|
|
|
DS3LocationData("FS: Eastern Armor - Easterner's Ashes", "Eastern Armor", shop=True,
|
|
|
|
conditional=True),
|
|
|
|
DS3LocationData("FS: Eastern Gauntlets - Easterner's Ashes", "Eastern Gauntlets",
|
|
|
|
shop=True, conditional=True),
|
|
|
|
DS3LocationData("FS: Eastern Leggings - Easterner's Ashes", "Eastern Leggings", shop=True,
|
|
|
|
conditional=True),
|
|
|
|
DS3LocationData("FS: Wood Grain Ring - Easterner's Ashes", "Wood Grain Ring", shop=True,
|
|
|
|
conditional=True),
|
|
|
|
DS3LocationData("FS: Millwood Knight Helm - Captain's Ashes", "Millwood Knight Helm",
|
|
|
|
dlc=True, shop=True, conditional=True),
|
|
|
|
DS3LocationData("FS: Millwood Knight Armor - Captain's Ashes", "Millwood Knight Armor",
|
|
|
|
dlc=True, shop=True, conditional=True),
|
|
|
|
DS3LocationData("FS: Millwood Knight Gauntlets - Captain's Ashes",
|
|
|
|
"Millwood Knight Gauntlets", dlc=True, shop=True, conditional=True),
|
|
|
|
DS3LocationData("FS: Millwood Knight Leggings - Captain's Ashes",
|
|
|
|
"Millwood Knight Leggings", dlc=True, shop=True, conditional=True),
|
|
|
|
DS3LocationData("FS: Refined Gem - Captain's Ashes", "Refined Gem", dlc=True, shop=True,
|
|
|
|
conditional=True),
|
|
|
|
|
|
|
|
# Ludleth Shop
|
|
|
|
DS3LocationData("FS: Vordt's Great Hammer - Ludleth for Vordt", "Vordt's Great Hammer",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Pontiff's Left Eye - Ludleth for Vordt", "Pontiff's Left Eye",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Bountiful Sunlight - Ludleth for Rosaria", "Bountiful Sunlight",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Darkmoon Longbow - Ludleth for Aldrich", "Darkmoon Longbow",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Lifehunt Scythe - Ludleth for Aldrich", "Lifehunt Scythe",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Hollowslayer Greatsword - Ludleth for Greatwood",
|
|
|
|
"Hollowslayer Greatsword", missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Arstor's Spear - Ludleth for Greatwood", "Arstor's Spear",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Crystal Sage's Rapier - Ludleth for Sage", "Crystal Sage's Rapier",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Crystal Hail - Ludleth for Sage", "Crystal Hail", missable=True,
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Cleric's Candlestick - Ludleth for Deacons", "Cleric's Candlestick",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Deep Soul - Ludleth for Deacons", "Deep Soul", missable=True,
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Havel's Ring - Ludleth for Stray Demon", "Havel's Ring",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Boulder Heave - Ludleth for Stray Demon", "Boulder Heave",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Farron Greatsword - Ludleth for Abyss Watchers", "Farron Greatsword",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Wolf Knight's Greatsword - Ludleth for Abyss Watchers",
|
|
|
|
"Wolf Knight's Greatsword", missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Wolnir's Holy Sword - Ludleth for Wolnir", "Wolnir's Holy Sword",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Black Serpent - Ludleth for Wolnir", "Black Serpent", missable=True,
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Demon's Greataxe - Ludleth for Fire Demon", "Demon's Greataxe",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Demon's Fist - Ludleth for Fire Demon", "Demon's Fist",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Old King's Great Hammer - Ludleth for Old Demon King",
|
|
|
|
"Old King's Great Hammer", missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Chaos Bed Vestiges - Ludleth for Old Demon King", "Chaos Bed Vestiges",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Greatsword of Judgment - Ludleth for Pontiff",
|
|
|
|
"Greatsword of Judgment", missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Profaned Greatsword - Ludleth for Pontiff", "Profaned Greatsword",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Yhorm's Great Machete - Ludleth for Yhorm", "Yhorm's Great Machete",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Yhorm's Greatshield - Ludleth for Yhorm", "Yhorm's Greatshield",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Dancer's Enchanted Swords - Ludleth for Dancer",
|
|
|
|
"Dancer's Enchanted Swords", missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Soothing Sunlight - Ludleth for Dancer", "Soothing Sunlight",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Dragonslayer Greataxe - Ludleth for Dragonslayer",
|
|
|
|
"Dragonslayer Greataxe", missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Dragonslayer Greatshield - Ludleth for Dragonslayer",
|
|
|
|
"Dragonslayer Greatshield", missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Moonlight Greatsword - Ludleth for Oceiros", "Moonlight Greatsword",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: White Dragon Breath - Ludleth for Oceiros", "White Dragon Breath",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Lorian's Greatsword - Ludleth for Princes", "Lorian's Greatsword",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Lothric's Holy Sword - Ludleth for Princes", "Lothric's Holy Sword",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Gundyr's Halberd - Ludleth for Champion", "Gundyr's Halberd",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Prisoner's Chain - Ludleth for Champion", "Prisoner's Chain",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Storm Curved Sword - Ludleth for Nameless", "Storm Curved Sword",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Dragonslayer Swordspear - Ludleth for Nameless",
|
|
|
|
"Dragonslayer Swordspear", missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Lightning Storm - Ludleth for Nameless", "Lightning Storm",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Firelink Greatsword - Ludleth for Cinder", "Firelink Greatsword",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Sunlight Spear - Ludleth for Cinder", "Sunlight Spear",
|
|
|
|
missable=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Friede's Great Scythe - Ludleth for Friede", "Friede's Great Scythe",
|
|
|
|
missable=True, dlc=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Rose of Ariandel - Ludleth for Friede", "Rose of Ariandel",
|
|
|
|
missable=True, dlc=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Demon's Scar - Ludleth for Demon Prince", "Demon's Scar",
|
|
|
|
missable=True, dlc=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Seething Chaos - Ludleth for Demon Prince", "Seething Chaos",
|
|
|
|
missable=True, dlc=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Frayed Blade - Ludleth for Midir", "Frayed Blade", missable=True,
|
|
|
|
dlc=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Old Moonlight - Ludleth for Midir", "Old Moonlight", missable=True,
|
|
|
|
dlc=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Gael's Greatsword - Ludleth for Gael", "Gael's Greatsword",
|
|
|
|
missable=True, dlc=True, boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Repeating Crossbow - Ludleth for Gael", "Repeating Crossbow",
|
|
|
|
missable=True, dlc=True, boss=True, shop=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
|
|
|
"Firelink Shrine Bell Tower": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
# Guarded by Tower Key
|
|
|
|
DS3LocationData("FSBT: Homeward Bone - roof", "Homeward Bone x3"),
|
|
|
|
DS3LocationData("FSBT: Estus Ring - tower base", "Estus Ring"),
|
|
|
|
DS3LocationData("FSBT: Estus Shard - rafters", "Estus Shard"),
|
|
|
|
DS3LocationData("FSBT: Fire Keeper Soul - tower top", "Fire Keeper Soul"),
|
|
|
|
DS3LocationData("FSBT: Fire Keeper Robe - partway down tower", "Fire Keeper Robe"),
|
|
|
|
DS3LocationData("FSBT: Fire Keeper Gloves - partway down tower", "Fire Keeper Gloves"),
|
|
|
|
DS3LocationData("FSBT: Fire Keeper Skirt - partway down tower", "Fire Keeper Skirt"),
|
|
|
|
DS3LocationData("FSBT: Covetous Silver Serpent Ring - illusory wall past rafters",
|
|
|
|
"Covetous Silver Serpent Ring", hidden=True),
|
|
|
|
DS3LocationData("FSBT: Twinkling Titanite - lizard behind Firelink",
|
|
|
|
"Twinkling Titanite", lizard=True),
|
|
|
|
|
|
|
|
# Mark all crow trades as missable since no one wants to have to try trading everything just
|
|
|
|
# in case it gives a progression item.
|
|
|
|
DS3LocationData("FSBT: Iron Bracelets - crow for Homeward Bone", "Iron Bracelets",
|
|
|
|
missable=True),
|
|
|
|
DS3LocationData("FSBT: Ring of Sacrifice - crow for Loretta's Bone", "Ring of Sacrifice",
|
|
|
|
missable=True),
|
|
|
|
DS3LocationData("FSBT: Porcine Shield - crow for Undead Bone Shard", "Porcine Shield",
|
|
|
|
missable=True),
|
|
|
|
DS3LocationData("FSBT: Lucatiel's Mask - crow for Vertebra Shackle", "Lucatiel's Mask",
|
|
|
|
missable=True),
|
|
|
|
DS3LocationData("FSBT: Very good! Carving - crow for Divine Blessing",
|
|
|
|
"Very good! Carving", missable=True),
|
|
|
|
DS3LocationData("FSBT: Thank you Carving - crow for Hidden Blessing", "Thank you Carving",
|
|
|
|
missable=True),
|
|
|
|
DS3LocationData("FSBT: I'm sorry Carving - crow for Shriving Stone", "I'm sorry Carving",
|
|
|
|
missable=True),
|
|
|
|
DS3LocationData("FSBT: Sunlight Shield - crow for Mendicant's Staff", "Sunlight Shield",
|
|
|
|
missable=True),
|
|
|
|
DS3LocationData("FSBT: Hollow Gem - crow for Eleonora", "Hollow Gem",
|
|
|
|
missable=True),
|
|
|
|
DS3LocationData("FSBT: Titanite Scale - crow for Blacksmith Hammer", "Titanite Scale x3",
|
|
|
|
static='99,0:50004330::', missable=True),
|
|
|
|
DS3LocationData("FSBT: Help me! Carving - crow for any sacred chime", "Help me! Carving",
|
|
|
|
missable=True),
|
|
|
|
DS3LocationData("FSBT: Titanite Slab - crow for Coiled Sword Fragment", "Titanite Slab",
|
|
|
|
missable=True),
|
|
|
|
DS3LocationData("FSBT: Hello Carving - crow for Alluring Skull", "Hello Carving",
|
|
|
|
missable=True),
|
|
|
|
DS3LocationData("FSBT: Armor of the Sun - crow for Siegbräu", "Armor of the Sun",
|
|
|
|
missable=True),
|
|
|
|
DS3LocationData("FSBT: Large Titanite Shard - crow for Firebomb", "Large Titanite Shard",
|
|
|
|
missable=True),
|
|
|
|
DS3LocationData("FSBT: Titanite Chunk - crow for Black Firebomb", "Titanite Chunk",
|
|
|
|
missable=True),
|
|
|
|
DS3LocationData("FSBT: Iron Helm - crow for Lightning Urn", "Iron Helm", missable=True),
|
|
|
|
DS3LocationData("FSBT: Twinkling Titanite - crow for Prism Stone", "Twinkling Titanite",
|
|
|
|
missable=True),
|
|
|
|
DS3LocationData("FSBT: Iron Leggings - crow for Seed of a Giant Tree", "Iron Leggings",
|
|
|
|
missable=True),
|
|
|
|
DS3LocationData("FSBT: Lightning Gem - crow for Xanthous Crown", "Lightning Gem",
|
|
|
|
missable=True),
|
|
|
|
DS3LocationData("FSBT: Twinkling Titanite - crow for Large Leather Shield",
|
|
|
|
"Twinkling Titanite", missable=True),
|
|
|
|
DS3LocationData("FSBT: Blessed Gem - crow for Moaning Shield", "Blessed Gem",
|
|
|
|
missable=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
|
|
|
"High Wall of Lothric": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
DS3LocationData("HWL: Soul of Boreal Valley Vordt", "Soul of Boreal Valley Vordt",
|
|
|
|
prominent=True, boss=True),
|
|
|
|
DS3LocationData("HWL: Soul of the Dancer", "Soul of the Dancer", prominent=True,
|
|
|
|
boss=True),
|
|
|
|
DS3LocationData("HWL: Basin of Vows - Emma", "Basin of Vows", prominent=True,
|
|
|
|
progression=True, conditional=True),
|
|
|
|
DS3LocationData("HWL: Small Lothric Banner - Emma", "Small Lothric Banner",
|
|
|
|
prominent=True, progression=True),
|
|
|
|
DS3LocationData("HWL: Green Blossom - fort walkway, hall behind wheel", "Green Blossom x2",
|
|
|
|
hidden=True),
|
|
|
|
DS3LocationData("HWL: Gold Pine Resin - corpse tower, drop", "Gold Pine Resin x2",
|
|
|
|
hidden=True),
|
|
|
|
DS3LocationData("HWL: Large Soul of a Deserted Corpse - flame plaza",
|
|
|
|
"Large Soul of a Deserted Corpse"),
|
|
|
|
DS3LocationData("HWL: Soul of a Deserted Corpse - by wall tower door",
|
|
|
|
"Soul of a Deserted Corpse"),
|
|
|
|
DS3LocationData("HWL: Standard Arrow - back tower", "Standard Arrow x12"),
|
|
|
|
DS3LocationData("HWL: Longbow - back tower", "Longbow"),
|
|
|
|
DS3LocationData("HWL: Firebomb - wall tower, beam", "Firebomb x3"),
|
|
|
|
DS3LocationData("HWL: Throwing Knife - wall tower, path to Greirat", "Throwing Knife x8"),
|
|
|
|
DS3LocationData("HWL: Soul of a Deserted Corpse - corpse tower, bottom floor",
|
|
|
|
"Soul of a Deserted Corpse"),
|
|
|
|
DS3LocationData("HWL: Club - flame plaza", "Club"),
|
|
|
|
DS3LocationData("HWL: Claymore - flame plaza", "Claymore"),
|
|
|
|
DS3LocationData("HWL: Ember - flame plaza", "Ember"),
|
|
|
|
DS3LocationData("HWL: Firebomb - corpse tower, under table", "Firebomb x2"),
|
|
|
|
DS3LocationData("HWL: Titanite Shard - wall tower, corner by bonfire", "Titanite Shard",
|
|
|
|
hidden=True),
|
|
|
|
DS3LocationData("HWL: Undead Hunter Charm - fort, room off entry, in pot",
|
|
|
|
"Undead Hunter Charm x2", hidden=True),
|
|
|
|
DS3LocationData("HWL: Firebomb - top of ladder to fountain", "Firebomb x3"),
|
|
|
|
DS3LocationData("HWL: Cell Key - fort ground, down stairs", "Cell Key"),
|
|
|
|
DS3LocationData("HWL: Ember - fountain #1", "Ember"),
|
|
|
|
DS3LocationData("HWL: Soul of a Deserted Corpse - fort entry, corner",
|
|
|
|
"Soul of a Deserted Corpse"),
|
|
|
|
DS3LocationData("HWL: Lucerne - promenade, side path", "Lucerne"),
|
|
|
|
DS3LocationData("HWL: Mail Breaker - wall tower, path to Greirat", "Mail Breaker"),
|
|
|
|
DS3LocationData("HWL: Titanite Shard - fort ground behind crates", "Titanite Shard",
|
|
|
|
hidden=True),
|
|
|
|
DS3LocationData("HWL: Rapier - fountain, corner", "Rapier"),
|
|
|
|
DS3LocationData("HWL: Titanite Shard - fort, room off entry", "Titanite Shard"),
|
|
|
|
DS3LocationData("HWL: Large Soul of a Deserted Corpse - fort roof",
|
|
|
|
"Large Soul of a Deserted Corpse"),
|
|
|
|
DS3LocationData("HWL: Black Firebomb - small roof over fountain", "Black Firebomb x3"),
|
|
|
|
DS3LocationData("HWL: Soul of a Deserted Corpse - path to corpse tower",
|
|
|
|
"Soul of a Deserted Corpse"),
|
|
|
|
DS3LocationData("HWL: Ember - fountain #2", "Ember"),
|
|
|
|
DS3LocationData("HWL: Large Soul of a Deserted Corpse - platform by fountain",
|
|
|
|
"Large Soul of a Deserted Corpse", hidden=True), # Easily missed turnoff
|
|
|
|
DS3LocationData("HWL: Binoculars - corpse tower, upper platform", "Binoculars"),
|
|
|
|
DS3LocationData("HWL: Ring of Sacrifice - awning by fountain",
|
|
|
|
"Ring of Sacrifice", hidden=True), # Easily missed turnoff
|
|
|
|
DS3LocationData("HWL: Throwing Knife - shortcut, lift top", "Throwing Knife x6"),
|
|
|
|
DS3LocationData("HWL: Soul of a Deserted Corpse - path to back tower, by lift door",
|
|
|
|
"Soul of a Deserted Corpse"),
|
|
|
|
DS3LocationData("HWL: Green Blossom - shortcut, lower courtyard", "Green Blossom x3"),
|
|
|
|
DS3LocationData("HWL: Broadsword - fort, room off walkway", "Broadsword"),
|
|
|
|
DS3LocationData("HWL: Soul of a Deserted Corpse - fountain, path to promenade",
|
|
|
|
"Soul of a Deserted Corpse"),
|
|
|
|
DS3LocationData("HWL: Firebomb - fort roof", "Firebomb x3"),
|
|
|
|
DS3LocationData("HWL: Soul of a Deserted Corpse - wall tower, right of exit",
|
|
|
|
"Soul of a Deserted Corpse"),
|
|
|
|
DS3LocationData("HWL: Estus Shard - fort ground, on anvil", "Estus Shard"),
|
|
|
|
DS3LocationData("HWL: Fleshbite Ring+1 - fort roof, jump to other roof",
|
|
|
|
"Fleshbite Ring+1", ngp=True, hidden=True), # Hidden jump
|
|
|
|
DS3LocationData("HWL: Ring of the Evil Eye+2 - fort ground, far wall",
|
|
|
|
"Ring of the Evil Eye+2", ngp=True, hidden=True), # In barrels
|
|
|
|
DS3LocationData("HWL: Silver Eagle Kite Shield - fort mezzanine",
|
|
|
|
"Silver Eagle Kite Shield"),
|
|
|
|
DS3LocationData("HWL: Astora Straight Sword - fort walkway, drop down",
|
|
|
|
"Astora Straight Sword", hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("HWL: Battle Axe - flame tower, mimic", "Battle Axe",
|
|
|
|
static='01,0:53000960::', mimic=True),
|
|
|
|
|
|
|
|
# Only dropped after transformation
|
|
|
|
DS3LocationData("HWL: Ember - fort roof, transforming hollow", "Ember", hidden=True),
|
|
|
|
DS3LocationData("HWL: Titanite Shard - fort roof, transforming hollow", "Titanite Shard",
|
|
|
|
hidden=True),
|
|
|
|
DS3LocationData("HWL: Ember - back tower, transforming hollow", "Ember", hidden=True),
|
|
|
|
DS3LocationData("HWL: Titanite Shard - back tower, transforming hollow", "Titanite Shard",
|
|
|
|
hidden=True),
|
|
|
|
|
|
|
|
DS3LocationData("HWL: Refined Gem - promenade miniboss", "Refined Gem", miniboss=True),
|
|
|
|
DS3LocationData("HWL: Way of Blue - Emma", "Way of Blue"),
|
|
|
|
# Categorize this as an NPC item so that it doesn't get randomized if the Lift Chamber Key
|
|
|
|
# isn't randomized, since in that case it's missable.
|
|
|
|
DS3LocationData("HWL: Red Eye Orb - wall tower, miniboss", "Red Eye Orb",
|
|
|
|
conditional=True, miniboss=True, npc=True),
|
|
|
|
DS3LocationData("HWL: Raw Gem - fort roof, lizard", "Raw Gem", lizard=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
|
|
|
"Undead Settlement": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
DS3LocationData("US: Soul of the Rotted Greatwood", "Soul of the Rotted Greatwood",
|
|
|
|
prominent=True, boss=True),
|
|
|
|
DS3LocationData("US: Transposing Kiln - boss drop", "Transposing Kiln", boss=True),
|
|
|
|
# Missable because it's unavailable if you start as a Pyromancer
|
|
|
|
DS3LocationData("US: Pyromancy Flame - Cornyx", "Pyromancy Flame", missable=True,
|
|
|
|
npc=True),
|
|
|
|
DS3LocationData("US: Old Sage's Blindfold - kill Cornyx", "Old Sage's Blindfold",
|
|
|
|
npc=True),
|
|
|
|
DS3LocationData("US: Cornyx's Garb - kill Cornyx", "Cornyx's Garb",
|
|
|
|
static='02,0:50006141::', npc=True),
|
|
|
|
DS3LocationData("US: Cornyx's Wrap - kill Cornyx", "Cornyx's Wrap",
|
|
|
|
static='02,0:50006141::', npc=True),
|
|
|
|
DS3LocationData("US: Cornyx's Skirt - kill Cornyx", "Cornyx's Skirt",
|
|
|
|
static='02,0:50006141::', npc=True),
|
|
|
|
DS3LocationData("US: Tower Key - kill Irina", "Tower Key", missable=True, npc=True),
|
|
|
|
DS3LocationData("US: Flynn's Ring - tower village, rooftop", "Flynn's Ring"),
|
|
|
|
DS3LocationData("US: Undead Bone Shard - by white tree", "Undead Bone Shard"),
|
|
|
|
DS3LocationData("US: Alluring Skull - foot, behind carriage", "Alluring Skull x2"),
|
|
|
|
DS3LocationData("US: Mortician's Ashes - graveyard by white tree", "Mortician's Ashes",
|
|
|
|
progression=True),
|
|
|
|
DS3LocationData("US: Homeward Bone - tower village, jump from roof", "Homeward Bone x2",
|
|
|
|
static='02,0:53100040::', hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("US: Caduceus Round Shield - right after stable exit",
|
|
|
|
"Caduceus Round Shield"),
|
|
|
|
DS3LocationData("US: Ember - tower basement, miniboss", "Ember"),
|
|
|
|
DS3LocationData("US: Soul of an Unknown Traveler - chasm crypt",
|
|
|
|
"Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("US: Repair Powder - first building, balcony", "Repair Powder x2"),
|
|
|
|
DS3LocationData("US: Homeward Bone - stable roof", "Homeward Bone x2",
|
|
|
|
static='02,0:53100090::'),
|
|
|
|
DS3LocationData("US: Titanite Shard - back alley, side path", "Titanite Shard"),
|
|
|
|
DS3LocationData("US: Wargod Wooden Shield - Pit of Hollows", "Wargod Wooden Shield"),
|
|
|
|
DS3LocationData("US: Large Soul of a Deserted Corpse - on the way to tower, by well",
|
|
|
|
"Large Soul of a Deserted Corpse"),
|
|
|
|
DS3LocationData("US: Ember - bridge on the way to tower", "Ember"),
|
|
|
|
DS3LocationData("US: Large Soul of a Deserted Corpse - stable",
|
|
|
|
"Large Soul of a Deserted Corpse"),
|
|
|
|
DS3LocationData("US: Titanite Shard - porch after burning tree", "Titanite Shard"),
|
|
|
|
DS3LocationData("US: Alluring Skull - tower village building, upstairs",
|
|
|
|
"Alluring Skull x2"),
|
|
|
|
DS3LocationData("US: Charcoal Pine Bundle - first building, middle floor",
|
|
|
|
"Charcoal Pine Bundle x2"),
|
|
|
|
DS3LocationData("US: Blue Wooden Shield - graveyard by white tree", "Blue Wooden Shield"),
|
|
|
|
DS3LocationData("US: Cleric Hat - graveyard by white tree", "Cleric Hat"),
|
|
|
|
DS3LocationData("US: Cleric Blue Robe - graveyard by white tree", "Cleric Blue Robe"),
|
|
|
|
DS3LocationData("US: Cleric Gloves - graveyard by white tree", "Cleric Gloves"),
|
|
|
|
DS3LocationData("US: Cleric Trousers - graveyard by white tree", "Cleric Trousers"),
|
|
|
|
DS3LocationData("US: Soul of an Unknown Traveler - portcullis by burning tree",
|
|
|
|
"Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("US: Charcoal Pine Resin - hanging corpse room", "Charcoal Pine Resin x2"),
|
|
|
|
DS3LocationData("US: Loincloth - by Velka statue", "Loincloth"),
|
|
|
|
DS3LocationData("US: Bloodbite Ring - miniboss in sewer", "Bloodbite Ring",
|
|
|
|
miniboss=True), # Giant Rat drop
|
|
|
|
DS3LocationData("US: Charcoal Pine Bundle - first building, bottom floor",
|
|
|
|
"Charcoal Pine Bundle x2"),
|
|
|
|
DS3LocationData("US: Soul of an Unknown Traveler - back alley, past crates",
|
|
|
|
"Soul of an Unknown Traveler", hidden=True),
|
|
|
|
DS3LocationData("US: Titanite Shard - back alley, up ladder", "Titanite Shard"),
|
|
|
|
DS3LocationData("US: Red Hilted Halberd - chasm crypt", "Red Hilted Halberd"),
|
|
|
|
DS3LocationData("US: Rusted Coin - awning above Dilapidated Bridge", "Rusted Coin x2"),
|
|
|
|
DS3LocationData("US: Caestus - sewer", "Caestus"),
|
|
|
|
DS3LocationData("US: Saint's Talisman - chasm, by ladder", "Saint's Talisman"),
|
|
|
|
DS3LocationData("US: Alluring Skull - on the way to tower, behind building",
|
|
|
|
"Alluring Skull x3"),
|
|
|
|
DS3LocationData("US: Large Club - tower village, by miniboss", "Large Club"),
|
|
|
|
DS3LocationData("US: Titanite Shard - chasm #1", "Titanite Shard"),
|
|
|
|
DS3LocationData("US: Titanite Shard - chasm #2", "Titanite Shard"),
|
|
|
|
DS3LocationData("US: Fading Soul - outside stable", "Fading Soul"),
|
|
|
|
DS3LocationData("US: Titanite Shard - lower path to Cliff Underside", "Titanite Shard",
|
|
|
|
hidden=True), # hidden fall
|
|
|
|
DS3LocationData("US: Hand Axe - by Cornyx", "Hand Axe"),
|
|
|
|
DS3LocationData("US: Soul of an Unknown Traveler - pillory past stable",
|
|
|
|
"Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("US: Ember - by stairs to boss", "Ember"),
|
|
|
|
DS3LocationData("US: Mirrah Vest - tower village, jump from roof", "Mirrah Vest",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("US: Mirrah Gloves - tower village, jump from roof", "Mirrah Gloves",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("US: Mirrah Trousers - tower village, jump from roof", "Mirrah Trousers",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("US: Plank Shield - outside stable, by NPC", "Plank Shield"),
|
|
|
|
DS3LocationData("US: Red Bug Pellet - tower village building, basement",
|
|
|
|
"Red Bug Pellet x2"),
|
|
|
|
DS3LocationData("US: Chloranthy Ring - tower village, jump from roof", "Chloranthy Ring",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("US: Fire Clutch Ring - wooden walkway past stable", "Fire Clutch Ring"),
|
|
|
|
DS3LocationData("US: Estus Shard - under burning tree", "Estus Shard"),
|
|
|
|
DS3LocationData("US: Firebomb - stable roof", "Firebomb x6"),
|
|
|
|
# In enemy rando, the enemy may not burst through the wall and make this room obvious
|
|
|
|
DS3LocationData("US: Whip - back alley, behind wooden wall", "Whip", hidden=True),
|
|
|
|
DS3LocationData("US: Great Scythe - building by white tree, balcony", "Great Scythe"),
|
|
|
|
DS3LocationData("US: Homeward Bone - foot, drop overlook", "Homeward Bone",
|
|
|
|
static='02,0:53100540::'),
|
|
|
|
DS3LocationData("US: Large Soul of a Deserted Corpse - around corner by Cliff Underside",
|
|
|
|
"Large Soul of a Deserted Corpse", hidden=True), # Hidden corner
|
|
|
|
DS3LocationData("US: Ember - behind burning tree", "Ember"),
|
|
|
|
DS3LocationData("US: Large Soul of a Deserted Corpse - across from Foot of the High Wall",
|
|
|
|
"Large Soul of a Deserted Corpse"),
|
|
|
|
DS3LocationData("US: Fading Soul - by white tree", "Fading Soul"),
|
|
|
|
DS3LocationData("US: Young White Branch - by white tree #1", "Young White Branch"),
|
|
|
|
DS3LocationData("US: Ember - by white tree", "Ember"),
|
|
|
|
DS3LocationData("US: Large Soul of a Deserted Corpse - by white tree",
|
|
|
|
"Large Soul of a Deserted Corpse"),
|
|
|
|
DS3LocationData("US: Young White Branch - by white tree #2", "Young White Branch"),
|
|
|
|
DS3LocationData("US: Reinforced Club - by white tree", "Reinforced Club"),
|
|
|
|
DS3LocationData("US: Soul of a Nameless Soldier - top of tower",
|
|
|
|
"Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("US: Loretta's Bone - first building, hanging corpse on balcony",
|
|
|
|
"Loretta's Bone"),
|
|
|
|
DS3LocationData("US: Northern Helm - tower village, hanging corpse", "Northern Helm"),
|
|
|
|
DS3LocationData("US: Northern Armor - tower village, hanging corpse", "Northern Armor"),
|
|
|
|
DS3LocationData("US: Northern Gloves - tower village, hanging corpse", "Northern Gloves"),
|
|
|
|
DS3LocationData("US: Northern Trousers - tower village, hanging corpse",
|
|
|
|
"Northern Trousers"),
|
|
|
|
DS3LocationData("US: Partizan - hanging corpse above Cliff Underside", "Partizan",
|
|
|
|
missable=True), # requires projectile
|
|
|
|
DS3LocationData("US: Flame Stoneplate Ring - hanging corpse by Mound-Maker transport",
|
|
|
|
"Flame Stoneplate Ring"),
|
|
|
|
DS3LocationData("US: Red and White Shield - chasm, hanging corpse", "Red and White Shield",
|
|
|
|
static="02,0:53100740::", missable=True), # requires projectile
|
|
|
|
DS3LocationData("US: Small Leather Shield - first building, hanging corpse by entrance",
|
|
|
|
"Small Leather Shield"),
|
|
|
|
DS3LocationData("US: Pale Tongue - tower village, hanging corpse", "Pale Tongue"),
|
|
|
|
DS3LocationData("US: Large Soul of a Deserted Corpse - hanging corpse room, over stairs",
|
|
|
|
"Large Soul of a Deserted Corpse"),
|
|
|
|
DS3LocationData("US: Kukri - hanging corpse above burning tree", "Kukri x9",
|
|
|
|
missable=True), # requires projectile
|
|
|
|
DS3LocationData("US: Life Ring+1 - tower on the way to village", "Life Ring+1", ngp=True),
|
|
|
|
DS3LocationData("US: Poisonbite Ring+1 - graveyard by white tree, near well",
|
|
|
|
"Poisonbite Ring+1", ngp=True),
|
|
|
|
DS3LocationData("US: Covetous Silver Serpent Ring+2 - tower village, drop down from roof",
|
|
|
|
"Covetous Silver Serpent Ring+2", ngp=True, hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("US: Human Pine Resin - tower village building, chest upstairs",
|
|
|
|
"Human Pine Resin x4"),
|
|
|
|
DS3LocationData("US: Homeward Bone - tower village, right at start", "Homeward Bone",
|
|
|
|
static='02,0:53100540::'),
|
|
|
|
DS3LocationData("US: Irithyll Straight Sword - miniboss drop, by Road of Sacrifices",
|
|
|
|
"Irithyll Straight Sword", miniboss=True),
|
|
|
|
DS3LocationData("US: Fire Gem - tower village, miniboss drop", "Fire Gem", miniboss=True),
|
|
|
|
DS3LocationData("US: Warrior of Sunlight - hanging corpse room, drop through hole",
|
|
|
|
"Warrior of Sunlight", hidden=True), # hidden fall
|
|
|
|
DS3LocationData("US: Mound-makers - Hodrick", "Mound-makers", missable=True),
|
|
|
|
DS3LocationData("US: Sharp Gem - lizard by Dilapidated Bridge", "Sharp Gem", lizard=True),
|
|
|
|
DS3LocationData("US: Heavy Gem - chasm, lizard", "Heavy Gem", lizard=True),
|
|
|
|
DS3LocationData("US: Siegbräu - Siegward", "Siegbräu", missable=True, npc=True),
|
|
|
|
DS3LocationData("US: Heavy Gem - Hawkwood", "Heavy Gem", static='00,0:50006070::',
|
|
|
|
missable=True, npc=True), # Hawkwood (quest, after Greatwood or Sage)
|
|
|
|
DS3LocationData("US -> RS", None),
|
|
|
|
|
|
|
|
# Yoel/Yuria of Londor
|
2024-12-01 04:00:06 +00:00
|
|
|
DS3LocationData("FS: Soul Arrow - Yoel/Yuria shop", "Soul Arrow",
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
static='99,0:-1:50000,110000,70000116:', missable=True, npc=True,
|
|
|
|
shop=True),
|
2024-12-01 04:00:06 +00:00
|
|
|
DS3LocationData("FS: Heavy Soul Arrow - Yoel/Yuria shop", "Heavy Soul Arrow",
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
static='99,0:-1:50000,110000,70000116:',
|
|
|
|
missable=True, npc=True, shop=True),
|
2024-12-01 04:00:06 +00:00
|
|
|
DS3LocationData("FS: Magic Weapon - Yoel/Yuria shop", "Magic Weapon",
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
static='99,0:-1:50000,110000,70000116:', missable=True, npc=True,
|
|
|
|
shop=True),
|
2024-12-01 04:00:06 +00:00
|
|
|
DS3LocationData("FS: Magic Shield - Yoel/Yuria shop", "Magic Shield",
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
static='99,0:-1:50000,110000,70000116:', missable=True, npc=True,
|
|
|
|
shop=True),
|
2024-12-01 04:00:06 +00:00
|
|
|
DS3LocationData("FS: Soul Greatsword - Yoel/Yuria shop", "Soul Greatsword",
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
static='99,0:-1:50000,110000,70000450,70000475:', missable=True,
|
|
|
|
npc=True, shop=True),
|
2024-12-01 04:00:06 +00:00
|
|
|
DS3LocationData("FS: Dark Hand - Yuria shop", "Dark Hand", missable=True, npc=True),
|
|
|
|
DS3LocationData("FS: Untrue White Ring - Yuria shop", "Untrue White Ring", missable=True,
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
npc=True),
|
2024-12-01 04:00:06 +00:00
|
|
|
DS3LocationData("FS: Untrue Dark Ring - Yuria shop", "Untrue Dark Ring", missable=True,
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
npc=True),
|
2024-12-01 04:00:06 +00:00
|
|
|
DS3LocationData("FS: Londor Braille Divine Tome - Yuria shop", "Londor Braille Divine Tome",
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
static='99,0:-1:40000,110000,70000116:', missable=True, npc=True),
|
2024-12-01 04:00:06 +00:00
|
|
|
DS3LocationData("FS: Darkdrift - kill Yuria", "Darkdrift", missable=True, drop=True,
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
npc=True), # kill her or kill Soul of Cinder
|
|
|
|
|
|
|
|
# Cornyx of the Great Swamp
|
|
|
|
# These aren't missable because the Shrine Handmaid will carry them if you kill Cornyx.
|
|
|
|
DS3LocationData("FS: Fireball - Cornyx", "Fireball", npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Fire Surge - Cornyx", "Fire Surge", npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Great Combustion - Cornyx", "Great Combustion", npc=True,
|
|
|
|
shop=True),
|
|
|
|
DS3LocationData("FS: Flash Sweat - Cornyx", "Flash Sweat", npc=True, shop=True),
|
|
|
|
# These are missable if you kill Cornyx before giving him the right tomes.
|
|
|
|
DS3LocationData("FS: Poison Mist - Cornyx for Great Swamp Tome", "Poison Mist",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Fire Orb - Cornyx for Great Swamp Tome", "Fire Orb", missable=True,
|
|
|
|
npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Profuse Sweat - Cornyx for Great Swamp Tome", "Profuse Sweat",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Bursting Fireball - Cornyx for Great Swamp Tome", "Bursting Fireball",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Acid Surge - Cornyx for Carthus Tome", "Acid Surge", missable=True,
|
|
|
|
npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Carthus Flame Arc - Cornyx for Carthus Tome", "Carthus Flame Arc",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Carthus Beacon - Cornyx for Carthus Tome", "Carthus Beacon",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Great Chaos Fire Orb - Cornyx for Izalith Tome",
|
|
|
|
"Great Chaos Fire Orb", missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Chaos Storm - Cornyx for Izalith Tome", "Chaos Storm", missable=True,
|
|
|
|
npc=True, shop=True),
|
|
|
|
|
|
|
|
# Irina of Carim
|
|
|
|
# These aren't in their own location because you don't actually need the Grave Key to access
|
|
|
|
# Irena—you can just fall down the cliff near Eygon.
|
|
|
|
DS3LocationData("FS: Saint's Ring - Irina", "Saint's Ring", npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Heal - Irina", "Heal", npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Replenishment - Irina", "Replenishment", npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Caressing Tears - Irina", "Caressing Tears", npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Homeward - Irina", "Homeward", npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Med Heal - Irina for Tome of Carim", "Med Heal", missable=True,
|
|
|
|
npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Tears of Denial - Irina for Tome of Carim", "Tears of Denial",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Force - Irina for Tome of Carim", "Force", missable=True, npc=True,
|
|
|
|
shop=True),
|
|
|
|
DS3LocationData("FS: Bountiful Light - Irina for Tome of Lothric", "Bountiful Light",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Magic Barrier - Irina for Tome of Lothric", "Magic Barrier",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Blessed Weapon - Irina for Tome of Lothric", "Blessed Weapon",
|
|
|
|
missable=True, npc=True, shop=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
|
|
|
"Road of Sacrifices": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
DS3LocationData("RS: Soul of a Crystal Sage", "Soul of a Crystal Sage", prominent=True,
|
|
|
|
boss=True),
|
|
|
|
DS3LocationData("RS: Exile Greatsword - NPC drop by Farron Keep", "Exile Greatsword",
|
|
|
|
hostile_npc=True), # Exile Knight #2 drop
|
|
|
|
DS3LocationData("RS: Great Club - NPC drop by Farron Keep", "Great Club",
|
|
|
|
hostile_npc=True), # Exile Knight #1 drop
|
|
|
|
DS3LocationData("RS: Heysel Pick - Heysel drop", "Heysel Pick", missable=True,
|
|
|
|
hostile_npc=True),
|
|
|
|
DS3LocationData("RS: Xanthous Crown - Heysel drop", "Xanthous Crown", missable=True,
|
|
|
|
hostile_npc=True),
|
|
|
|
DS3LocationData("RS: Butcher Knife - NPC drop beneath road", "Butcher Knife",
|
|
|
|
hostile_npc=True), # Madwoman
|
|
|
|
DS3LocationData("RS: Titanite Shard - water by Halfway Fortress", "Titanite Shard"),
|
|
|
|
DS3LocationData("RS: Titanite Shard - woods, left of path from Halfway Fortress",
|
|
|
|
"Titanite Shard"),
|
|
|
|
DS3LocationData("RS: Green Blossom - by deep water", "Green Blossom x4"),
|
|
|
|
DS3LocationData("RS: Estus Shard - left of fire behind stronghold left room",
|
|
|
|
"Estus Shard"),
|
|
|
|
DS3LocationData("RS: Ring of Sacrifice - stronghold, drop from right room balcony",
|
|
|
|
"Ring of Sacrifice", hidden=True), # hidden fall
|
|
|
|
DS3LocationData("RS: Soul of an Unknown Traveler - drop along wall from Halfway Fortress",
|
|
|
|
"Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("RS: Fallen Knight Helm - water's edge by Farron Keep",
|
|
|
|
"Fallen Knight Helm"),
|
|
|
|
DS3LocationData("RS: Fallen Knight Armor - water's edge by Farron Keep",
|
|
|
|
"Fallen Knight Armor"),
|
|
|
|
DS3LocationData("RS: Fallen Knight Gauntlets - water's edge by Farron Keep",
|
|
|
|
"Fallen Knight Gauntlets"),
|
|
|
|
DS3LocationData("RS: Fallen Knight Trousers - water's edge by Farron Keep",
|
|
|
|
"Fallen Knight Trousers"),
|
|
|
|
DS3LocationData("RS: Heretic's Staff - stronghold left room", "Heretic's Staff"),
|
|
|
|
DS3LocationData("RS: Large Soul of an Unknown Traveler - left of stairs to Farron Keep",
|
|
|
|
"Large Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("RS: Conjurator Hood - deep water", "Conjurator Hood"),
|
|
|
|
DS3LocationData("RS: Conjurator Robe - deep water", "Conjurator Robe"),
|
|
|
|
DS3LocationData("RS: Conjurator Manchettes - deep water", "Conjurator Manchettes"),
|
|
|
|
DS3LocationData("RS: Conjurator Boots - deep water", "Conjurator Boots"),
|
|
|
|
DS3LocationData("RS: Soul of an Unknown Traveler - right of door to stronghold left",
|
|
|
|
"Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("RS: Green Blossom - water beneath stronghold", "Green Blossom x2"),
|
|
|
|
DS3LocationData("RS: Great Swamp Pyromancy Tome - deep water",
|
|
|
|
"Great Swamp Pyromancy Tome"),
|
|
|
|
DS3LocationData("RS: Homeward Bone - balcony by Farron Keep", "Homeward Bone x2"),
|
|
|
|
DS3LocationData("RS: Titanite Shard - woods, surrounded by enemies", "Titanite Shard"),
|
|
|
|
DS3LocationData("RS: Twin Dragon Greatshield - woods by Crucifixion Woods bonfire",
|
|
|
|
"Twin Dragon Greatshield"),
|
|
|
|
DS3LocationData("RS: Sorcerer Hood - water beneath stronghold", "Sorcerer Hood",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("RS: Sorcerer Robe - water beneath stronghold", "Sorcerer Robe",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("RS: Sorcerer Gloves - water beneath stronghold", "Sorcerer Gloves",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("RS: Sorcerer Trousers - water beneath stronghold", "Sorcerer Trousers",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("RS: Sage Ring - water beneath stronghold", "Sage Ring",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("RS: Grass Crest Shield - water by Crucifixion Woods bonfire",
|
|
|
|
"Grass Crest Shield"),
|
|
|
|
DS3LocationData("RS: Ember - right of fire behind stronghold left room", "Ember"),
|
|
|
|
DS3LocationData("RS: Blue Bug Pellet - broken stairs by Orbeck", "Blue Bug Pellet x2"),
|
|
|
|
DS3LocationData("RS: Soul of an Unknown Traveler - road, by wagon",
|
|
|
|
"Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("RS: Shriving Stone - road, by start", "Shriving Stone"),
|
|
|
|
DS3LocationData("RS: Titanite Shard - road, on bridge after you go under",
|
|
|
|
"Titanite Shard"),
|
|
|
|
DS3LocationData("RS: Brigand Twindaggers - beneath road", "Brigand Twindaggers"),
|
|
|
|
DS3LocationData("RS: Braille Divine Tome of Carim - drop from bridge to Halfway Fortress",
|
|
|
|
"Braille Divine Tome of Carim", hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("RS: Ember - right of Halfway Fortress entrance", "Ember"),
|
|
|
|
DS3LocationData("RS: Sellsword Twinblades - keep perimeter", "Sellsword Twinblades"),
|
|
|
|
DS3LocationData("RS: Golden Falcon Shield - path from stronghold right room to Farron Keep",
|
|
|
|
"Golden Falcon Shield"),
|
|
|
|
DS3LocationData("RS: Brigand Axe - beneath road", "Brigand Axe"),
|
|
|
|
DS3LocationData("RS: Brigand Hood - beneath road", "Brigand Hood"),
|
|
|
|
DS3LocationData("RS: Brigand Armor - beneath road", "Brigand Armor"),
|
|
|
|
DS3LocationData("RS: Brigand Gauntlets - beneath road", "Brigand Gauntlets"),
|
|
|
|
DS3LocationData("RS: Brigand Trousers - beneath road", "Brigand Trousers"),
|
|
|
|
DS3LocationData("RS: Morne's Ring - drop from bridge to Halfway Fortress", "Morne's Ring",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("RS: Sellsword Helm - keep perimeter balcony", "Sellsword Helm"),
|
|
|
|
DS3LocationData("RS: Sellsword Armor - keep perimeter balcony", "Sellsword Armor"),
|
|
|
|
DS3LocationData("RS: Sellsword Gauntlet - keep perimeter balcony", "Sellsword Gauntlet"),
|
|
|
|
DS3LocationData("RS: Sellsword Trousers - keep perimeter balcony", "Sellsword Trousers"),
|
|
|
|
DS3LocationData("RS: Farron Coal - keep perimeter", "Farron Coal"),
|
|
|
|
DS3LocationData("RS: Chloranthy Ring+2 - road, drop across from carriage",
|
|
|
|
"Chloranthy Ring+2", hidden=True, ngp=True), # Hidden fall
|
|
|
|
DS3LocationData("RS: Lingering Dragoncrest Ring+1 - water", "Lingering Dragoncrest Ring+1",
|
|
|
|
ngp=True),
|
|
|
|
DS3LocationData("RS: Great Swamp Ring - miniboss drop, by Farron Keep",
|
|
|
|
"Great Swamp Ring", miniboss=True), # Giant Crab drop
|
|
|
|
DS3LocationData("RS: Blue Sentinels - Horace", "Blue Sentinels",
|
|
|
|
missable=True, npc=True), # Horace quest
|
|
|
|
DS3LocationData("RS: Crystal Gem - stronghold, lizard", "Crystal Gem"),
|
|
|
|
DS3LocationData("RS: Fading Soul - woods by Crucifixion Woods bonfire", "Fading Soul",
|
|
|
|
static='03,0:53300210::'),
|
|
|
|
|
|
|
|
# Orbeck shop, all missable because he'll disappear if you don't talk to him for too long or
|
|
|
|
# if you don't give him a scroll.
|
|
|
|
DS3LocationData("FS: Farron Dart - Orbeck", "Farron Dart",
|
|
|
|
static='99,0:-1:110000,130100,70000111:', missable=True, npc=True,
|
|
|
|
shop=True),
|
|
|
|
DS3LocationData("FS: Soul Arrow - Orbeck", "Soul Arrow",
|
|
|
|
static='99,0:-1:110000,130100,70000111:', missable=True, npc=True,
|
|
|
|
shop=True),
|
|
|
|
DS3LocationData("FS: Great Soul Arrow - Orbeck", "Great Soul Arrow", missable=True,
|
|
|
|
npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Heavy Soul Arrow - Orbeck", "Heavy Soul Arrow",
|
|
|
|
static='99,0:-1:110000,130100,70000111:', missable=True, npc=True,
|
|
|
|
shop=True),
|
|
|
|
DS3LocationData("FS: Great Heavy Soul Arrow - Orbeck", "Great Heavy Soul Arrow",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Magic Weapon - Orbeck", "Magic Weapon",
|
|
|
|
static='99,0:-1:110000,130100,70000111:', missable=True, npc=True,
|
|
|
|
shop=True),
|
|
|
|
DS3LocationData("FS: Magic Shield - Orbeck", "Magic Shield",
|
|
|
|
static='99,0:-1:110000,130100,70000111:', missable=True, npc=True,
|
|
|
|
shop=True),
|
|
|
|
DS3LocationData("FS: Spook - Orbeck", "Spook", missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Aural Decoy - Orbeck", "Aural Decoy", missable=True, npc=True,
|
|
|
|
shop=True),
|
|
|
|
DS3LocationData("FS: Soul Greatsword - Orbeck", "Soul Greatsword",
|
|
|
|
static='99,0:-1:110000,130100,70000111:', missable=True, npc=True),
|
|
|
|
DS3LocationData("FS: Farron Flashsword - Orbeck", "Farron Flashsword", missable=True,
|
|
|
|
npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Pestilent Mist - Orbeck for any scroll", "Pestilent Mist",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Great Farron Dart - Orbeck for Sage's Scroll", "Great Farron Dart",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Farron Hail - Orbeck for Sage's Scroll", "Farron Hail",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Homing Soulmass - Orbeck for Logan's Scroll", "Homing Soulmass",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Soul Spear - Orbeck for Logan's Scroll", "Soul Spear",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Homing Crystal Soulmass - Orbeck for Crystal Scroll",
|
|
|
|
"Homing Crystal Soulmass", missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Crystal Soul Spear - Orbeck for Crystal Scroll", "Crystal Soul Spear",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Crystal Magic Weapon - Orbeck for Crystal Scroll",
|
|
|
|
"Crystal Magic Weapon", missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Cast Light - Orbeck for Golden Scroll", "Cast Light", missable=True,
|
|
|
|
npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Twisted Wall of Light - Orbeck for Golden Scroll",
|
|
|
|
"Twisted Wall of Light", missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Hidden Weapon - Orbeck for Golden Scroll", "Hidden Weapon",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Hidden Body - Orbeck for Golden Scroll", "Hidden Body",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Repair - Orbeck for Golden Scroll", "Repair", missable=True,
|
|
|
|
npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Clandestine Coat - shop with Orbeck's Ashes", "Clandestine Coat",
|
|
|
|
missable=True, npc=True,
|
|
|
|
shop=True), # Shrine Handmaid with Orbeck's Ashes + reload
|
|
|
|
DS3LocationData("FS: Young Dragon Ring - Orbeck for one scroll and buying three spells",
|
|
|
|
"Young Dragon Ring", missable=True, npc=True),
|
|
|
|
DS3LocationData("FS: Slumbering Dragoncrest Ring - Orbeck for buying four specific spells",
|
|
|
|
"Slumbering Dragoncrest Ring", missable=True, npc=True),
|
|
|
|
DS3LocationData("RS -> FK", None),
|
|
|
|
|
|
|
|
# Shrine Handmaid after killing exiles
|
|
|
|
DS3LocationData("FS: Exile Mask - shop after killing NPCs in RS", "Exile Mask",
|
|
|
|
hostile_npc=True, shop=True, hidden=True),
|
|
|
|
DS3LocationData("FS: Exile Armor - shop after killing NPCs in RS", "Exile Armor",
|
|
|
|
hostile_npc=True, shop=True, hidden=True),
|
|
|
|
DS3LocationData("FS: Exile Gauntlets - shop after killing NPCs in RS", "Exile Gauntlets",
|
|
|
|
hostile_npc=True, shop=True, hidden=True),
|
|
|
|
DS3LocationData("FS: Exile Leggings - shop after killing NPCs in RS", "Exile Leggings",
|
|
|
|
hostile_npc=True, shop=True, hidden=True),
|
|
|
|
|
|
|
|
# Shrine Handmaid after killing Crystal Sage
|
|
|
|
DS3LocationData("FS: Sage's Big Hat - shop after killing RS boss", "Sage's Big Hat",
|
|
|
|
boss=True, shop=True),
|
|
|
|
|
|
|
|
# Yuria of Londor for Orbeck's Ashes
|
|
|
|
DS3LocationData("FS: Morion Blade - Yuria for Orbeck's Ashes", "Morion Blade",
|
|
|
|
missable=True, npc=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
|
|
|
"Cathedral of the Deep": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
DS3LocationData("CD: Herald Helm - path, by fire", "Herald Helm"),
|
|
|
|
DS3LocationData("CD: Herald Armor - path, by fire", "Herald Armor"),
|
|
|
|
DS3LocationData("CD: Herald Gloves - path, by fire", "Herald Gloves"),
|
|
|
|
DS3LocationData("CD: Herald Trousers - path, by fire", "Herald Trousers"),
|
|
|
|
DS3LocationData("CD: Twinkling Titanite - path, lizard #1", "Twinkling Titanite",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("CD: Twinkling Titanite - path, lizard #2", "Twinkling Titanite",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("CD: Small Doll - boss drop", "Small Doll", prominent=True,
|
|
|
|
progression=True, boss=True),
|
|
|
|
DS3LocationData("CD: Soul of the Deacons of the Deep", "Soul of the Deacons of the Deep",
|
|
|
|
boss=True),
|
|
|
|
DS3LocationData("CD: Black Eye Orb - Rosaria from Leonhard's quest", "Black Eye Orb",
|
|
|
|
missable=True, npc=True),
|
|
|
|
DS3LocationData("CD: Winged Spear - kill Patches", "Winged Spear", drop=True,
|
|
|
|
missable=True), # Patches (kill)
|
|
|
|
DS3LocationData("CD: Spider Shield - NPC drop on path", "Spider Shield",
|
|
|
|
hostile_npc=True), # Brigand
|
|
|
|
DS3LocationData("CD: Notched Whip - Cleansing Chapel", "Notched Whip"),
|
|
|
|
DS3LocationData("CD: Titanite Shard - Cleansing Chapel windowsill, by miniboss",
|
|
|
|
"Titanite Shard"),
|
|
|
|
DS3LocationData("CD: Astora Greatsword - graveyard, left of entrance", "Astora Greatsword"),
|
|
|
|
DS3LocationData("CD: Executioner's Greatsword - graveyard, far end",
|
|
|
|
"Executioner's Greatsword"),
|
|
|
|
DS3LocationData("CD: Undead Bone Shard - gravestone by white tree", "Undead Bone Shard"),
|
|
|
|
DS3LocationData("CD: Curse Ward Greatshield - by ladder from white tree to moat",
|
|
|
|
"Curse Ward Greatshield"),
|
|
|
|
DS3LocationData("CD: Titanite Shard - moat, far end", "Titanite Shard"),
|
|
|
|
DS3LocationData("CD: Large Soul of an Unknown Traveler - lower roofs, semicircle balcony",
|
|
|
|
"Large Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("CD: Paladin's Ashes - path, guarded by lower NPC", "Paladin's Ashes",
|
|
|
|
progression=True),
|
|
|
|
DS3LocationData("CD: Arbalest - upper roofs, end of furthest buttress", "Arbalest"),
|
|
|
|
DS3LocationData("CD: Ember - by back door", "Ember"),
|
|
|
|
DS3LocationData("CD: Ember - side chapel upstairs, up ladder", "Ember"),
|
|
|
|
DS3LocationData("CD: Poisonbite Ring - moat, hall past miniboss", "Poisonbite Ring"),
|
|
|
|
DS3LocationData("CD: Drang Armor - main hall, east", "Drang Armor"),
|
|
|
|
DS3LocationData("CD: Ember - edge of platform before boss", "Ember"),
|
|
|
|
DS3LocationData("CD: Duel Charm - next to Patches in onion armor", "Duel Charm x3"),
|
|
|
|
DS3LocationData("CD: Seek Guidance - side chapel upstairs", "Seek Guidance"),
|
|
|
|
DS3LocationData("CD: Estus Shard - monument outside Cleansing Chapel", "Estus Shard"),
|
|
|
|
DS3LocationData("CD: Maiden Hood - main hall south", "Maiden Hood"),
|
|
|
|
DS3LocationData("CD: Maiden Robe - main hall south", "Maiden Robe"),
|
|
|
|
DS3LocationData("CD: Maiden Gloves - main hall south", "Maiden Gloves"),
|
|
|
|
DS3LocationData("CD: Maiden Skirt - main hall south", "Maiden Skirt"),
|
|
|
|
DS3LocationData("CD: Pale Tongue - upper roofs, outdoors far end", "Pale Tongue"),
|
|
|
|
DS3LocationData("CD: Fading Soul - graveyard, far end", "Fading Soul"),
|
|
|
|
DS3LocationData("CD: Blessed Gem - upper roofs, rafters", "Blessed Gem"),
|
|
|
|
DS3LocationData("CD: Red Bug Pellet - right of cathedral front doors", "Red Bug Pellet"),
|
|
|
|
DS3LocationData("CD: Soul of a Nameless Soldier - main hall south",
|
|
|
|
"Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("CD: Duel Charm - by first elevator", "Duel Charm"),
|
|
|
|
DS3LocationData("CD: Large Soul of an Unknown Traveler - main hall south, side path",
|
|
|
|
"Large Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("CD: Ember - side chapel, miniboss room", "Ember"),
|
|
|
|
DS3LocationData("CD: Repair Powder - by white tree", "Repair Powder x3"),
|
|
|
|
DS3LocationData("CD: Large Soul of an Unknown Traveler - by white tree #1",
|
|
|
|
"Large Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("CD: Large Soul of an Unknown Traveler - by white tree #2",
|
|
|
|
"Large Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("CD: Undead Hunter Charm - lower roofs, up stairs between buttresses",
|
|
|
|
"Undead Hunter Charm x3"),
|
|
|
|
DS3LocationData("CD: Red Bug Pellet - lower roofs, up stairs between buttresses",
|
|
|
|
"Red Bug Pellet x3"),
|
|
|
|
DS3LocationData("CD: Titanite Shard - outside building by white tree", "Titanite Shard",
|
|
|
|
hidden=True), # Easily missable side path
|
|
|
|
DS3LocationData("CD: Titanite Shard - moat, up a slope", "Titanite Shard"),
|
|
|
|
DS3LocationData("CD: Rusted Coin - left of cathedral front doors, behind crates",
|
|
|
|
"Rusted Coin x2", hidden=True),
|
|
|
|
DS3LocationData("CD: Drang Hammers - main hall east", "Drang Hammers"),
|
|
|
|
DS3LocationData("CD: Drang Shoes - main hall east", "Drang Shoes"),
|
|
|
|
DS3LocationData("CD: Large Soul of an Unknown Traveler - main hall east",
|
|
|
|
"Large Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("CD: Pale Tongue - main hall east", "Pale Tongue"),
|
|
|
|
DS3LocationData("CD: Drang Gauntlets - main hall east", "Drang Gauntlets"),
|
|
|
|
DS3LocationData("CD: Soul of a Nameless Soldier - lower roofs, side room",
|
|
|
|
"Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("CD: Exploding Bolt - ledge above main hall south", "Exploding Bolt x6"),
|
|
|
|
DS3LocationData("CD: Lloyd's Sword Ring - ledge above main hall south",
|
|
|
|
"Lloyd's Sword Ring"),
|
|
|
|
DS3LocationData("CD: Soul of a Nameless Soldier - ledge above main hall south",
|
|
|
|
"Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("CD: Homeward Bone - outside main hall south door", "Homeward Bone x2"),
|
|
|
|
DS3LocationData("CD: Deep Gem - down stairs by first elevator", "Deep Gem"),
|
|
|
|
DS3LocationData("CD: Titanite Shard - path, side path by Cathedral of the Deep bonfire",
|
|
|
|
"Titanite Shard"),
|
|
|
|
DS3LocationData("CD: Large Soul of an Unknown Traveler - path, against outer wall",
|
|
|
|
"Large Soul of an Unknown Traveler"),
|
|
|
|
# Before the stairs leading down into the Deacons fight
|
|
|
|
DS3LocationData("CD: Ring of the Evil Eye+1 - by stairs to boss", "Ring of the Evil Eye+1",
|
|
|
|
ngp=True),
|
|
|
|
DS3LocationData("CD: Ring of Favor+2 - upper roofs, on buttress", "Ring of Favor+2",
|
|
|
|
hidden=True, ngp=True), # Hidden fall
|
|
|
|
DS3LocationData("CD: Crest Shield - path, drop down by Cathedral of the Deep bonfire",
|
|
|
|
"Crest Shield", hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("CD: Young White Branch - by white tree #1", "Young White Branch"),
|
|
|
|
DS3LocationData("CD: Young White Branch - by white tree #2", "Young White Branch"),
|
|
|
|
DS3LocationData("CD: Saint-tree Bellvine - moat, by water", "Saint-tree Bellvine"),
|
|
|
|
DS3LocationData("CD: Saint Bident - outside main hall south door", "Saint Bident"),
|
|
|
|
# Archdeacon set is hidden because you have to return to a cleared area
|
|
|
|
DS3LocationData("CD: Archdeacon White Crown - boss room after killing boss",
|
|
|
|
"Archdeacon White Crown", boss=True, hidden=True),
|
|
|
|
DS3LocationData("CD: Archdeacon Holy Garb - boss room after killing boss",
|
|
|
|
"Archdeacon Holy Garb", boss=True, hidden=True),
|
|
|
|
DS3LocationData("CD: Archdeacon Skirt - boss room after killing boss", "Archdeacon Skirt",
|
|
|
|
boss=True, hidden=True),
|
|
|
|
# Heysel items may not be missable, but it's not clear what causes them to trigger
|
|
|
|
DS3LocationData("CD: Heysel Pick - Heysel Corpse-Grub in Rosaria's Bed Chamber",
|
|
|
|
"Heysel Pick", missable=True),
|
|
|
|
DS3LocationData("CD: Xanthous Crown - Heysel Corpse-Grub in Rosaria's Bed Chamber",
|
|
|
|
"Xanthous Crown", missable=True),
|
|
|
|
DS3LocationData("CD: Deep Ring - upper roofs, passive mob drop in first tower", "Deep Ring",
|
|
|
|
drop=True, hidden=True),
|
|
|
|
DS3LocationData("CD: Deep Braille Divine Tome - mimic by side chapel",
|
|
|
|
"Deep Braille Divine Tome", mimic=True),
|
|
|
|
DS3LocationData("CD: Red Sign Soapstone - passive mob drop by Rosaria's Bed Chamber",
|
|
|
|
"Red Sign Soapstone", drop=True, hidden=True),
|
|
|
|
DS3LocationData("CD: Aldrich's Sapphire - side chapel, miniboss drop", "Aldrich's Sapphire",
|
|
|
|
miniboss=True), # Deep Accursed Drop
|
|
|
|
DS3LocationData("CD: Titanite Scale - moat, miniboss drop", "Titanite Scale",
|
|
|
|
miniboss=True), # Ravenous Crystal Lizard drop
|
|
|
|
DS3LocationData("CD: Twinkling Titanite - moat, lizard #1", "Twinkling Titanite",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("CD: Twinkling Titanite - moat, lizard #2", "Twinkling Titanite",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("CD: Rosaria's Fingers - Rosaria", "Rosaria's Fingers",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("CD -> PW1", None),
|
|
|
|
|
|
|
|
# Longfinger Kirk drops
|
|
|
|
DS3LocationData("CD: Barbed Straight Sword - Kirk drop", "Barbed Straight Sword",
|
|
|
|
missable=True, hostile_npc=True),
|
|
|
|
DS3LocationData("CD: Spiked Shield - Kirk drop", "Spiked Shield", missable=True,
|
|
|
|
hostile_npc=True),
|
|
|
|
# In Rosaria's Bed Chamber
|
|
|
|
DS3LocationData("CD: Helm of Thorns - Rosaria's Bed Chamber after killing Kirk",
|
|
|
|
"Helm of Thorns", missable=True, hostile_npc=True),
|
|
|
|
DS3LocationData("CD: Armor of Thorns - Rosaria's Bed Chamber after killing Kirk",
|
|
|
|
"Armor of Thorns", missable=True, hostile_npc=True),
|
|
|
|
DS3LocationData("CD: Gauntlets of Thorns - Rosaria's Bed Chamber after killing Kirk",
|
|
|
|
"Gauntlets of Thorns", missable=True, hostile_npc=True),
|
|
|
|
DS3LocationData("CD: Leggings of Thorns - Rosaria's Bed Chamber after killing Kirk",
|
|
|
|
"Leggings of Thorns", missable=True, hostile_npc=True),
|
|
|
|
|
|
|
|
# Unbreakable Patches
|
|
|
|
DS3LocationData("CD: Rusted Coin - don't forgive Patches", "Rusted Coin",
|
|
|
|
missable=True, npc=True),
|
|
|
|
DS3LocationData("FS: Rusted Gold Coin - don't forgive Patches", "Rusted Gold Coin",
|
|
|
|
static='99,0:50006201::', missable=True,
|
|
|
|
npc=True), # Don't forgive Patches
|
|
|
|
DS3LocationData("CD: Shotel - Patches", "Shotel", missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("CD: Ember - Patches", "Ember", missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("CD: Horsehoof Ring - Patches", "Horsehoof Ring", missable=True,
|
|
|
|
npc=True, drop=True, shop=True), # (kill or buy)
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
|
|
|
"Farron Keep": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
DS3LocationData("FK: Lightning Spear - upper keep, far side of the wall",
|
|
|
|
"Lightning Spear"),
|
|
|
|
DS3LocationData("FK: Dragon Crest Shield - upper keep, far side of the wall",
|
|
|
|
"Dragon Crest Shield"),
|
|
|
|
DS3LocationData("FK: Soul of the Blood of the Wolf", "Soul of the Blood of the Wolf",
|
|
|
|
boss=True),
|
|
|
|
DS3LocationData("FK: Cinders of a Lord - Abyss Watcher",
|
|
|
|
"Cinders of a Lord - Abyss Watcher",
|
|
|
|
static="03,0:50002100::", prominent=True, progression=True,
|
|
|
|
boss=True),
|
|
|
|
DS3LocationData("FK: Manikin Claws - Londor Pale Shade drop", "Manikin Claws",
|
|
|
|
missable=True, hostile_npc=True,
|
|
|
|
npc=True), # Londor Pale Shade (if Yoel/Yuria hostile)
|
|
|
|
DS3LocationData("FK: Purple Moss Clump - keep ruins, ritual island",
|
|
|
|
"Purple Moss Clump x2"),
|
|
|
|
DS3LocationData("FK: Purple Moss Clump - ramp directly in front of Farron Keep bonfire",
|
|
|
|
"Purple Moss Clump x4"),
|
|
|
|
DS3LocationData("FK: Greatsword - ramp by keep ruins ritual island", "Greatsword"),
|
|
|
|
DS3LocationData("FK: Hollow Gem - perimeter, drop down into swamp", "Hollow Gem",
|
|
|
|
hidden=True),
|
|
|
|
DS3LocationData("FK: Purple Moss Clump - Farron Keep bonfire, around right corner",
|
|
|
|
"Purple Moss Clump x3"),
|
|
|
|
DS3LocationData("FK: Undead Bone Shard - pavilion by keep ruins bonfire island",
|
|
|
|
"Undead Bone Shard"),
|
|
|
|
DS3LocationData("FK: Atonement - perimeter, drop down into swamp", "Atonement",
|
|
|
|
hidden=True),
|
|
|
|
DS3LocationData("FK: Titanite Shard - by ladder to keep proper", "Titanite Shard"),
|
|
|
|
DS3LocationData("FK: Iron Flesh - Farron Keep bonfire, right after exit", "Iron Flesh"),
|
|
|
|
DS3LocationData("FK: Stone Parma - near wall by left island", "Stone Parma"),
|
|
|
|
DS3LocationData("FK: Rotten Pine Resin - left island, behind fire", "Rotten Pine Resin x2"),
|
|
|
|
DS3LocationData("FK: Titanite Shard - between left island and keep ruins", "Titanite Shard"),
|
|
|
|
DS3LocationData("FK: Rusted Gold Coin - right island, behind wall", "Rusted Gold Coin",
|
|
|
|
hidden=True),
|
|
|
|
DS3LocationData("FK: Nameless Knight Helm - corner of keep and right island",
|
|
|
|
"Nameless Knight Helm"),
|
|
|
|
DS3LocationData("FK: Nameless Knight Armor - corner of keep and right island",
|
|
|
|
"Nameless Knight Armor"),
|
|
|
|
DS3LocationData("FK: Nameless Knight Gauntlets - corner of keep and right island",
|
|
|
|
"Nameless Knight Gauntlets"),
|
|
|
|
DS3LocationData("FK: Nameless Knight Leggings - corner of keep and right island",
|
|
|
|
"Nameless Knight Leggings"),
|
|
|
|
DS3LocationData("FK: Shriving Stone - perimeter, just past stone doors", "Shriving Stone"),
|
|
|
|
DS3LocationData("FK: Repair Powder - outside hidden cave", "Repair Powder x4",
|
|
|
|
hidden=True),
|
|
|
|
DS3LocationData("FK: Golden Scroll - hidden cave", "Golden Scroll", hidden=True),
|
|
|
|
DS3LocationData("FK: Sage's Scroll - near wall by keep ruins bonfire island",
|
|
|
|
"Sage's Scroll"),
|
|
|
|
DS3LocationData("FK: Dreamchaser's Ashes - keep proper, illusory wall",
|
|
|
|
"Dreamchaser's Ashes", progression=True, hidden=True),
|
|
|
|
DS3LocationData("FK: Titanite Shard - keep ruins bonfire island, under ramp",
|
|
|
|
"Titanite Shard"),
|
|
|
|
DS3LocationData("FK: Wolf's Blood Swordgrass - by ladder to keep proper",
|
|
|
|
"Wolf's Blood Swordgrass"),
|
|
|
|
DS3LocationData("FK: Great Magic Weapon - perimeter, by door to Road of Sacrifices",
|
|
|
|
"Great Magic Weapon"),
|
|
|
|
DS3LocationData("FK: Ember - perimeter, path to boss", "Ember"),
|
|
|
|
DS3LocationData("FK: Titanite Shard - swamp by right island", "Titanite Shard x2"),
|
|
|
|
DS3LocationData("FK: Titanite Shard - by left island stairs", "Titanite Shard"),
|
|
|
|
DS3LocationData("FK: Titanite Shard - by keep ruins ritual island stairs", "Titanite Shard"),
|
|
|
|
DS3LocationData("FK: Black Bug Pellet - perimeter, hill by boss door",
|
|
|
|
"Black Bug Pellet x3"),
|
|
|
|
DS3LocationData("FK: Rotten Pine Resin - outside pavilion by left island",
|
|
|
|
"Rotten Pine Resin x4"),
|
|
|
|
DS3LocationData("FK: Poison Gem - near wall by keep ruins bridge", "Poison Gem"),
|
|
|
|
DS3LocationData("FK: Ragged Mask - Farron Keep bonfire, around left corner", "Ragged Mask"),
|
|
|
|
DS3LocationData("FK: Estus Shard - between Farron Keep bonfire and left island",
|
|
|
|
"Estus Shard"),
|
|
|
|
DS3LocationData("FK: Homeward Bone - right island, behind fire", "Homeward Bone x2"),
|
|
|
|
DS3LocationData("FK: Titanite Shard - Farron Keep bonfire, left after exit",
|
|
|
|
"Titanite Shard"),
|
|
|
|
DS3LocationData("FK: Large Soul of a Nameless Soldier - corner of keep and right island",
|
|
|
|
"Large Soul of a Nameless Soldier", hidden=True), # Tricky corner to spot
|
|
|
|
DS3LocationData("FK: Prism Stone - by left island stairs", "Prism Stone x10"),
|
|
|
|
DS3LocationData("FK: Large Soul of a Nameless Soldier - near wall by right island",
|
|
|
|
"Large Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("FK: Sage's Coal - pavilion by left island", "Sage's Coal"),
|
|
|
|
DS3LocationData("FK: Gold Pine Bundle - by white tree", "Gold Pine Bundle x6"),
|
|
|
|
DS3LocationData("FK: Ember - by white tree", "Ember"),
|
|
|
|
DS3LocationData("FK: Soul of a Nameless Soldier - by white tree", "Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("FK: Large Soul of an Unknown Traveler - by white tree",
|
|
|
|
"Large Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("FK: Greataxe - upper keep, by miniboss", "Greataxe"),
|
|
|
|
DS3LocationData("FK: Ember - upper keep, by miniboss #1", "Ember"),
|
|
|
|
DS3LocationData("FK: Ember - upper keep, by miniboss #2", "Ember"),
|
|
|
|
DS3LocationData("FK: Dark Stoneplate Ring+2 - keep ruins ritual island, behind wall",
|
|
|
|
"Dark Stoneplate Ring+2", ngp=True, hidden=True),
|
|
|
|
DS3LocationData("FK: Magic Stoneplate Ring+1 - between right island and wall",
|
|
|
|
"Magic Stoneplate Ring+1", ngp=True),
|
|
|
|
DS3LocationData("FK: Wolf Ring+1 - keep ruins bonfire island, outside building",
|
|
|
|
"Wolf Ring+1", ngp=True),
|
|
|
|
DS3LocationData("FK: Antiquated Dress - hidden cave", "Antiquated Dress", hidden=True),
|
|
|
|
DS3LocationData("FK: Antiquated Gloves - hidden cave", "Antiquated Gloves", hidden=True),
|
|
|
|
DS3LocationData("FK: Antiquated Skirt - hidden cave", "Antiquated Skirt", hidden=True),
|
|
|
|
DS3LocationData("FK: Sunlight Talisman - estus soup island, by ladder to keep proper",
|
|
|
|
"Sunlight Talisman"),
|
|
|
|
DS3LocationData("FK: Young White Branch - by white tree #1", "Young White Branch"),
|
|
|
|
DS3LocationData("FK: Young White Branch - by white tree #2", "Young White Branch"),
|
|
|
|
DS3LocationData("FK: Crown of Dusk - by white tree", "Crown of Dusk"),
|
|
|
|
DS3LocationData("FK: Lingering Dragoncrest Ring - by white tree, miniboss drop",
|
|
|
|
"Lingering Dragoncrest Ring", miniboss=True), # Great Crab drop
|
|
|
|
DS3LocationData("FK: Pharis's Hat - miniboss drop, by keep ruins near wall",
|
|
|
|
"Pharis's Hat", miniboss=True), # Elder Ghru drop
|
|
|
|
DS3LocationData("FK: Black Bow of Pharis - miniboss drop, by keep ruins near wall",
|
|
|
|
"Black Bow of Pharis", miniboss=True), # Elder Ghru drop
|
|
|
|
DS3LocationData("FK: Titanite Scale - perimeter, miniboss drop", "Titanite Scale x2",
|
|
|
|
miniboss=True), # Ravenous Crystal Lizard drop
|
|
|
|
DS3LocationData("FK: Large Titanite Shard - upper keep, lizard in open",
|
|
|
|
"Large Titanite Shard", lizard=True),
|
|
|
|
DS3LocationData("FK: Large Titanite Shard - upper keep, lizard by wyvern",
|
|
|
|
"Large Titanite Shard", lizard=True),
|
|
|
|
DS3LocationData("FK: Heavy Gem - upper keep, lizard on stairs", "Heavy Gem", lizard=True),
|
|
|
|
DS3LocationData("FK: Twinkling Titanite - keep proper, lizard", "Twinkling Titanite",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("FK: Soul of a Stray Demon - upper keep, miniboss drop",
|
|
|
|
"Soul of a Stray Demon", miniboss=True),
|
|
|
|
DS3LocationData("FK: Watchdogs of Farron - Old Wolf", "Watchdogs of Farron"),
|
|
|
|
DS3LocationData("FS: Hawkwood's Shield - gravestone after Hawkwood leaves",
|
|
|
|
"Hawkwood's Shield", missable=True,
|
|
|
|
npc=True), # Hawkwood (quest, after Greatwood, Sage, Watchers, and Deacons)
|
|
|
|
DS3LocationData("US: Hawk Ring - Giant Archer", "Hawk Ring", drop=True,
|
|
|
|
npc=True), # Giant archer (kill or quest), here because you need to
|
|
|
|
# collect all seven White Branch locations to get it peacefully
|
|
|
|
|
|
|
|
# Hawkwood after killing Abyss Watchers
|
|
|
|
DS3LocationData("FS: Farron Ring - Hawkwood", "Farron Ring",
|
|
|
|
missable=True, npc=True),
|
|
|
|
|
|
|
|
# Shrine Handmaid after killing Abyss Watchers
|
|
|
|
DS3LocationData("FS: Undead Legion Helm - shop after killing FK boss", "Undead Legion Helm",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Undead Legion Armor - shop after killing FK boss",
|
|
|
|
"Undead Legion Armor", boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Undead Legion Gauntlet - shop after killing FK boss",
|
|
|
|
"Undead Legion Gauntlet", boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Undead Legion Leggings - shop after killing FK boss",
|
|
|
|
"Undead Legion Leggings", boss=True, shop=True),
|
|
|
|
|
|
|
|
# Appears after killing Havel Knight in Archdragon Peak
|
|
|
|
DS3LocationData("FK: Havel's Helm - upper keep, after killing AP belfry roof NPC",
|
|
|
|
"Havel's Helm", hidden=True, hostile_npc=True),
|
|
|
|
DS3LocationData("FK: Havel's Armor - upper keep, after killing AP belfry roof NPC",
|
|
|
|
"Havel's Armor", hidden=True, hostile_npc=True),
|
|
|
|
DS3LocationData("FK: Havel's Gauntlets - upper keep, after killing AP belfry roof NPC",
|
|
|
|
"Havel's Gauntlets", hidden=True, hostile_npc=True),
|
|
|
|
DS3LocationData("FK: Havel's Leggings - upper keep, after killing AP belfry roof NPC",
|
|
|
|
"Havel's Leggings", hidden=True, hostile_npc=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
|
|
|
"Catacombs of Carthus": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
DS3LocationData("CC: Soul of High Lord Wolnir", "Soul of High Lord Wolnir",
|
|
|
|
prominent=True, boss=True),
|
|
|
|
DS3LocationData("CC: Carthus Rouge - atrium upper, left after entrance",
|
|
|
|
"Carthus Rouge x2"),
|
|
|
|
DS3LocationData("CC: Sharp Gem - atrium lower, right before exit", "Sharp Gem"),
|
|
|
|
DS3LocationData("CC: Soul of a Nameless Soldier - atrium lower, down hall",
|
|
|
|
"Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("CC: Titanite Shard - atrium lower, corner by stairs", "Titanite Shard x2"),
|
|
|
|
DS3LocationData("CC: Bloodred Moss Clump - atrium lower, down more stairs",
|
|
|
|
"Bloodred Moss Clump x3"),
|
|
|
|
DS3LocationData("CC: Carthus Milkring - crypt upper, among pots", "Carthus Milkring"),
|
|
|
|
DS3LocationData("CC: Ember - atrium, on long stairway", "Ember"),
|
|
|
|
DS3LocationData("CC: Carthus Rouge - crypt across, corner", "Carthus Rouge x3"),
|
|
|
|
DS3LocationData("CC: Ember - crypt upper, end of hall past hole", "Ember"),
|
|
|
|
DS3LocationData("CC: Carthus Bloodring - crypt lower, end of side hall", "Carthus Bloodring"),
|
|
|
|
DS3LocationData("CC: Titanite Shard - crypt lower, left of entrance", "Titanite Shard x2"),
|
|
|
|
DS3LocationData("CC: Titanite Shard - crypt lower, start of side hall", "Titanite Shard x2"),
|
|
|
|
DS3LocationData("CC: Ember - crypt lower, shortcut to cavern", "Ember"),
|
|
|
|
DS3LocationData("CC: Carthus Pyromancy Tome - atrium lower, jump from bridge",
|
|
|
|
"Carthus Pyromancy Tome",
|
|
|
|
hidden=True), # Behind illusory wall or hidden drop
|
|
|
|
DS3LocationData("CC: Large Titanite Shard - crypt upper, skeleton ball hall",
|
|
|
|
"Large Titanite Shard"),
|
|
|
|
DS3LocationData("CC: Large Titanite Shard - crypt across, middle hall",
|
|
|
|
"Large Titanite Shard"),
|
|
|
|
DS3LocationData("CC: Yellow Bug Pellet - cavern, on overlook", "Yellow Bug Pellet x3"),
|
|
|
|
DS3LocationData("CC: Large Soul of a Nameless Soldier - cavern, before bridge",
|
|
|
|
"Large Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("CC: Black Bug Pellet - cavern, before bridge", "Black Bug Pellet x2"),
|
|
|
|
DS3LocationData("CC: Grave Warden's Ashes - crypt across, corner", "Grave Warden's Ashes",
|
|
|
|
progression=True),
|
|
|
|
DS3LocationData("CC: Large Titanite Shard - tomb lower", "Large Titanite Shard"),
|
|
|
|
DS3LocationData("CC: Large Soul of a Nameless Soldier - tomb lower",
|
|
|
|
"Large Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("CC: Old Sage's Blindfold - tomb, hall before bonfire",
|
|
|
|
"Old Sage's Blindfold"),
|
|
|
|
DS3LocationData("CC: Witch's Ring - tomb, hall before bonfire", "Witch's Ring"),
|
|
|
|
DS3LocationData("CC: Soul of a Nameless Soldier - atrium upper, up more stairs",
|
|
|
|
"Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("CC: Grave Warden Pyromancy Tome - boss arena",
|
|
|
|
"Grave Warden Pyromancy Tome"),
|
|
|
|
DS3LocationData("CC: Large Soul of an Unknown Traveler - crypt upper, hall middle",
|
|
|
|
"Large Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("CC: Ring of Steel Protection+2 - atrium upper, drop onto pillar",
|
|
|
|
"Ring of Steel Protection+2", ngp=True),
|
|
|
|
DS3LocationData("CC: Thunder Stoneplate Ring+1 - crypt upper, among pots",
|
|
|
|
"Thunder Stoneplate Ring+1", ngp=True),
|
|
|
|
DS3LocationData("CC: Undead Bone Shard - crypt upper, skeleton ball drop",
|
|
|
|
"Undead Bone Shard", hidden=True), # Skeleton Ball puzzle
|
|
|
|
DS3LocationData("CC: Dark Gem - crypt lower, skeleton ball drop", "Dark Gem",
|
|
|
|
hidden=True), # Skeleton Ball puzzle
|
|
|
|
DS3LocationData("CC: Black Blade - tomb, mimic", "Black Blade", mimic=True),
|
|
|
|
DS3LocationData("CC: Soul of a Demon - tomb, miniboss drop", "Soul of a Demon",
|
|
|
|
miniboss=True),
|
|
|
|
DS3LocationData("CC: Twinkling Titanite - atrium lower, lizard down more stairs",
|
|
|
|
"Twinkling Titanite", lizard=True),
|
|
|
|
DS3LocationData("CC: Fire Gem - cavern, lizard", "Fire Gem", lizard=True),
|
|
|
|
DS3LocationData("CC: Homeward Bone - Irithyll bridge", "Homeward Bone"),
|
|
|
|
DS3LocationData("CC: Pontiff's Right Eye - Irithyll bridge, miniboss drop",
|
|
|
|
"Pontiff's Right Eye", miniboss=True), # Sulyvahn's Beast drop
|
|
|
|
|
|
|
|
# Shrine Handmaid after killing High Lord Wolnir
|
|
|
|
DS3LocationData("FS: Wolnir's Crown - shop after killing CC boss", "Wolnir's Crown",
|
|
|
|
boss=True, shop=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
|
|
|
"Smouldering Lake": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
DS3LocationData("SL: Soul of the Old Demon King", "Soul of the Old Demon King",
|
|
|
|
prominent=True, boss=True),
|
|
|
|
DS3LocationData("SL: Fume Ultra Greatsword - ruins basement, NPC drop",
|
|
|
|
"Fume Ultra Greatsword", hostile_npc=True), # Knight Slayer Tsorig drop
|
|
|
|
DS3LocationData("SL: Black Iron Greatshield - ruins basement, NPC drop",
|
|
|
|
"Black Iron Greatshield", hostile_npc=True), # Knight Slayer Tsorig drop
|
|
|
|
DS3LocationData("SL: Large Titanite Shard - ledge by Demon Ruins bonfire",
|
|
|
|
"Large Titanite Shard"),
|
|
|
|
DS3LocationData("SL: Large Titanite Shard - lake, by entrance", "Large Titanite Shard"),
|
|
|
|
DS3LocationData("SL: Large Titanite Shard - lake, straight from entrance",
|
|
|
|
"Large Titanite Shard"),
|
|
|
|
DS3LocationData("SL: Large Titanite Shard - lake, by tree #1", "Large Titanite Shard"),
|
|
|
|
DS3LocationData("SL: Large Titanite Shard - lake, by miniboss", "Large Titanite Shard"),
|
|
|
|
DS3LocationData("SL: Yellow Bug Pellet - side lake", "Yellow Bug Pellet x2"),
|
|
|
|
DS3LocationData("SL: Large Titanite Shard - side lake #1", "Large Titanite Shard"),
|
|
|
|
DS3LocationData("SL: Large Titanite Shard - side lake #2", "Large Titanite Shard"),
|
|
|
|
DS3LocationData("SL: Large Titanite Shard - lake, by tree #2", "Large Titanite Shard"),
|
|
|
|
DS3LocationData("SL: Speckled Stoneplate Ring - lake, ballista breaks bricks",
|
|
|
|
"Speckled Stoneplate Ring", hidden=True), # Requires careful ballista shot
|
|
|
|
DS3LocationData("SL: Homeward Bone - path to ballista", "Homeward Bone x2"),
|
|
|
|
DS3LocationData("SL: Ember - ruins main upper, hall end by hole", "Ember"),
|
|
|
|
DS3LocationData("SL: Chaos Gem - lake, far end by mob", "Chaos Gem"),
|
|
|
|
DS3LocationData("SL: Ember - ruins main lower, path to antechamber", "Ember"),
|
|
|
|
DS3LocationData("SL: Izalith Pyromancy Tome - antechamber, room near bonfire",
|
|
|
|
"Izalith Pyromancy Tome"),
|
|
|
|
DS3LocationData("SL: Black Knight Sword - ruins main lower, illusory wall in far hall",
|
|
|
|
"Black Knight Sword", hidden=True),
|
|
|
|
DS3LocationData("SL: Ember - ruins main upper, just after entrance", "Ember"),
|
|
|
|
DS3LocationData("SL: Quelana Pyromancy Tome - ruins main lower, illusory wall in grey room",
|
|
|
|
"Quelana Pyromancy Tome", hidden=True),
|
|
|
|
DS3LocationData("SL: Izalith Staff - ruins basement, second illusory wall behind chest",
|
|
|
|
"Izalith Staff", hidden=True),
|
|
|
|
DS3LocationData("SL: White Hair Talisman - ruins main lower, in lava",
|
|
|
|
"White Hair Talisman",
|
|
|
|
missable=True), # This may not even be possible to get without enough fire
|
|
|
|
# protection gear which the player may not have
|
|
|
|
DS3LocationData("SL: Toxic Mist - ruins main lower, in lava", "Toxic Mist",
|
|
|
|
missable=True), # This is _probably_ reachable with normal gear, but it
|
|
|
|
# still sucks and will probably force a death.
|
|
|
|
DS3LocationData("SL: Undead Bone Shard - ruins main lower, left after stairs",
|
|
|
|
"Undead Bone Shard"),
|
|
|
|
DS3LocationData("SL: Titanite Scale - ruins basement, path to lava", "Titanite Scale"),
|
|
|
|
DS3LocationData("SL: Shield of Want - lake, by miniboss", "Shield of Want"),
|
|
|
|
DS3LocationData("SL: Soul of a Crestfallen Knight - ruins basement, above lava",
|
|
|
|
"Soul of a Crestfallen Knight"),
|
|
|
|
|
|
|
|
# Lava items are missable because they require a complex set of armor, rings, spells, and
|
|
|
|
# undead bone shards to reliably access without dying.
|
|
|
|
DS3LocationData("SL: Ember - ruins basement, in lava", "Ember", missable=True), # In lava
|
|
|
|
DS3LocationData("SL: Sacred Flame - ruins basement, in lava", "Sacred Flame",
|
|
|
|
missable=True), # In lava
|
|
|
|
|
|
|
|
DS3LocationData("SL: Dragonrider Bow - by ladder from ruins basement to ballista",
|
|
|
|
"Dragonrider Bow", hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("SL: Estus Shard - antechamber, illusory wall", "Estus Shard",
|
|
|
|
hidden=True),
|
|
|
|
DS3LocationData("SL: Bloodbite Ring+1 - behind ballista", "Bloodbite Ring+1", ngp=True),
|
|
|
|
DS3LocationData("SL: Flame Stoneplate Ring+2 - ruins main lower, illusory wall in far hall",
|
|
|
|
"Flame Stoneplate Ring+2", ngp=True, hidden=True),
|
|
|
|
DS3LocationData("SL: Large Titanite Shard - ruins basement, illusory wall in upper hall",
|
|
|
|
"Large Titanite Shard x3", hidden=True),
|
|
|
|
DS3LocationData("SL: Undead Bone Shard - lake, miniboss drop", "Undead Bone Shard",
|
|
|
|
miniboss=True), # Sand Worm drop
|
|
|
|
DS3LocationData("SL: Lightning Stake - lake, miniboss drop", "Lightning Stake",
|
|
|
|
miniboss=True), # Sand Worm drop
|
|
|
|
DS3LocationData("SL: Twinkling Titanite - path to side lake, lizard", "Twinkling Titanite",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("SL: Titanite Chunk - path to side lake, lizard", "Titanite Chunk",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("SL: Chaos Gem - antechamber, lizard at end of long hall", "Chaos Gem",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("SL: Knight Slayer's Ring - ruins basement, NPC drop",
|
|
|
|
"Knight Slayer's Ring", hostile_npc=True), # Knight Slayer Tsorig drop
|
|
|
|
|
|
|
|
# Horace the Hushed
|
|
|
|
# These are listed here even though you can kill Horace in the Road of Sacrifices because
|
|
|
|
# the player may want to complete his and Anri's quest first.
|
|
|
|
DS3LocationData("SL: Llewellyn Shield - Horace drop", "Llewellyn Shield", npc=True,
|
|
|
|
hostile_npc=True),
|
|
|
|
DS3LocationData("FS: Executioner Helm - shop after killing Horace", "Executioner Helm",
|
|
|
|
npc=True, hostile_npc=True, shop=True, hidden=True),
|
|
|
|
DS3LocationData("FS: Executioner Armor - shop after killing Horace", "Executioner Armor",
|
|
|
|
npc=True, hostile_npc=True, shop=True, hidden=True),
|
|
|
|
DS3LocationData("FS: Executioner Gauntlets - shop after killing Horace",
|
|
|
|
"Executioner Gauntlets", hostile_npc=True, npc=True, shop=True,
|
|
|
|
hidden=True),
|
|
|
|
DS3LocationData("FS: Executioner Leggings - shop after killing Horace",
|
|
|
|
"Executioner Leggings", hostile_npc=True, npc=True, shop=True,
|
|
|
|
hidden=True),
|
|
|
|
|
|
|
|
# Shrine Handmaid after killing Knight Slayer Tsorig
|
|
|
|
DS3LocationData("FS: Black Iron Helm - shop after killing Tsorig", "Black Iron Helm",
|
|
|
|
hostile_npc=True, shop=True, hidden=True),
|
|
|
|
DS3LocationData("FS: Black Iron Armor - shop after killing Tsorig", "Black Iron Armor",
|
|
|
|
hostile_npc=True, shop=True, hidden=True),
|
|
|
|
DS3LocationData("FS: Black Iron Gauntlets - shop after killing Tsorig",
|
|
|
|
"Black Iron Gauntlets", hostile_npc=True, shop=True, hidden=True),
|
|
|
|
DS3LocationData("FS: Black Iron Leggings - shop after killing Tsorig",
|
|
|
|
"Black Iron Leggings", hostile_npc=True, shop=True, hidden=True),
|
|
|
|
|
|
|
|
# Near Cornyx's cage after killing Old Demon King with Cuculus
|
|
|
|
DS3LocationData("US: Spotted Whip - by Cornyx's cage after Cuculus quest", "Spotted Whip",
|
|
|
|
missable=True, boss=True, npc=True),
|
|
|
|
DS3LocationData("US: Cornyx's Garb - by Cornyx's cage after Cuculus quest",
|
|
|
|
"Cornyx's Garb", static='02,0:53100100::', missable=True, boss=True,
|
|
|
|
npc=True),
|
|
|
|
DS3LocationData("US: Cornyx's Wrap - by Cornyx's cage after Cuculus quest", "Cornyx's Wrap",
|
|
|
|
static='02,0:53100100::', missable=True, boss=True, npc=True),
|
|
|
|
DS3LocationData("US: Cornyx's Skirt - by Cornyx's cage after Cuculus quest",
|
|
|
|
"Cornyx's Skirt", static='02,0:53100100::', missable=True, boss=True,
|
|
|
|
npc=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
|
|
|
"Irithyll of the Boreal Valley": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
DS3LocationData("IBV: Soul of Pontiff Sulyvahn", "Soul of Pontiff Sulyvahn",
|
|
|
|
prominent=True, boss=True),
|
|
|
|
DS3LocationData("IBV: Large Soul of a Nameless Soldier - central, by bonfire",
|
|
|
|
"Large Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("IBV: Large Titanite Shard - ascent, down ladder in last building",
|
|
|
|
"Large Titanite Shard"),
|
|
|
|
DS3LocationData("IBV: Soul of a Weary Warrior - central, by first fountain",
|
|
|
|
"Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("IBV: Soul of a Weary Warrior - central, railing by first fountain",
|
|
|
|
"Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("IBV: Rime-blue Moss Clump - central, by bonfire", "Rime-blue Moss Clump"),
|
|
|
|
DS3LocationData("IBV: Witchtree Branch - by Dorhys", "Witchtree Branch",
|
|
|
|
hidden=True), # Behind illusory wall
|
|
|
|
DS3LocationData("IBV: Large Titanite Shard - central, side path after first fountain",
|
|
|
|
"Large Titanite Shard"),
|
|
|
|
DS3LocationData("IBV: Budding Green Blossom - central, by second fountain",
|
|
|
|
"Budding Green Blossom"),
|
|
|
|
DS3LocationData("IBV: Rime-blue Moss Clump - central, past second fountain",
|
|
|
|
"Rime-blue Moss Clump x2"),
|
|
|
|
DS3LocationData("IBV: Large Titanite Shard - central, balcony just before plaza",
|
|
|
|
"Large Titanite Shard"),
|
|
|
|
DS3LocationData("IBV: Large Titanite Shard - path to Dorhys", "Large Titanite Shard",
|
|
|
|
hidden=True), # Behind illusory wall
|
|
|
|
DS3LocationData("IBV: Ring of the Sun's First Born - fall from in front of cathedral",
|
|
|
|
"Ring of the Sun's First Born",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("IBV: Large Soul of a Nameless Soldier - path to plaza",
|
|
|
|
"Large Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("IBV: Large Titanite Shard - plaza, balcony overlooking ascent",
|
|
|
|
"Large Titanite Shard"),
|
|
|
|
DS3LocationData("IBV: Large Titanite Shard - plaza, by stairs to church",
|
|
|
|
"Large Titanite Shard"),
|
|
|
|
DS3LocationData("IBV: Soul of a Weary Warrior - plaza, side room lower",
|
|
|
|
"Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("IBV: Magic Clutch Ring - plaza, illusory wall", "Magic Clutch Ring",
|
|
|
|
hidden=True), # Behind illusory wall
|
|
|
|
DS3LocationData("IBV: Fading Soul - descent, cliff edge #1", "Fading Soul"),
|
|
|
|
DS3LocationData("IBV: Fading Soul - descent, cliff edge #2", "Fading Soul"),
|
|
|
|
DS3LocationData("IBV: Homeward Bone - descent, before gravestone", "Homeward Bone x3"),
|
|
|
|
DS3LocationData("IBV: Undead Bone Shard - descent, behind gravestone", "Undead Bone Shard",
|
|
|
|
hidden=True), # Hidden behind gravestone
|
|
|
|
DS3LocationData("IBV: Kukri - descent, side path", "Kukri x8"),
|
|
|
|
DS3LocationData("IBV: Rusted Gold Coin - descent, side path", "Rusted Gold Coin"),
|
|
|
|
DS3LocationData("IBV: Blue Bug Pellet - descent, dark room", "Blue Bug Pellet x2"),
|
|
|
|
DS3LocationData("IBV: Shriving Stone - descent, dark room rafters", "Shriving Stone"),
|
|
|
|
DS3LocationData("IBV: Blood Gem - descent, platform before lake", "Blood Gem"),
|
|
|
|
DS3LocationData("IBV: Green Blossom - lake, by stairs from descent", "Green Blossom x3"),
|
|
|
|
DS3LocationData("IBV: Ring of Sacrifice - lake, right of stairs from descent",
|
|
|
|
"Ring of Sacrifice"),
|
|
|
|
DS3LocationData("IBV: Great Heal - lake, dead Corpse-Grub", "Great Heal"),
|
|
|
|
DS3LocationData("IBV: Large Soul of a Nameless Soldier - lake island",
|
|
|
|
"Large Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("IBV: Green Blossom - lake wall", "Green Blossom x3"),
|
|
|
|
DS3LocationData("IBV: Dung Pie - sewer #1", "Dung Pie x3"),
|
|
|
|
DS3LocationData("IBV: Dung Pie - sewer #2", "Dung Pie x3"),
|
|
|
|
# These don't actually guard any single item sales. Maybe we can inject one manually?
|
|
|
|
DS3LocationData("IBV: Excrement-covered Ashes - sewer, by stairs",
|
|
|
|
"Excrement-covered Ashes"),
|
|
|
|
DS3LocationData("IBV: Large Soul of a Nameless Soldier - ascent, after great hall",
|
|
|
|
"Large Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("IBV: Soul of a Weary Warrior - ascent, by final staircase",
|
|
|
|
"Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("IBV: Large Titanite Shard - ascent, by elevator door",
|
|
|
|
"Large Titanite Shard"),
|
|
|
|
DS3LocationData("IBV: Blue Bug Pellet - ascent, in last building", "Blue Bug Pellet x2"),
|
|
|
|
DS3LocationData("IBV: Ember - shortcut from church to cathedral", "Ember"),
|
|
|
|
DS3LocationData("IBV: Green Blossom - lake, by Distant Manor", "Green Blossom"),
|
|
|
|
DS3LocationData("IBV: Lightning Gem - plaza center", "Lightning Gem"),
|
|
|
|
DS3LocationData("IBV: Large Soul of a Nameless Soldier - central, by second fountain",
|
|
|
|
"Large Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("IBV: Soul of a Weary Warrior - plaza, side room upper",
|
|
|
|
"Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("IBV: Proof of a Concord Kept - Church of Yorshka altar",
|
|
|
|
"Proof of a Concord Kept"),
|
|
|
|
DS3LocationData("IBV: Rusted Gold Coin - Distant Manor, drop after stairs",
|
|
|
|
"Rusted Gold Coin"),
|
|
|
|
DS3LocationData("IBV: Chloranthy Ring+1 - plaza, behind altar", "Chloranthy Ring+1",
|
|
|
|
ngp=True),
|
|
|
|
DS3LocationData("IBV: Covetous Gold Serpent Ring+1 - descent, drop after dark room",
|
|
|
|
"Covetous Gold Serpent Ring+1", ngp=True, hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("IBV: Wood Grain Ring+2 - ascent, right after great hall", "Wood Grain Ring+2",
|
|
|
|
ngp=True),
|
|
|
|
DS3LocationData("IBV: Divine Blessing - great hall, chest", "Divine Blessing"),
|
|
|
|
DS3LocationData("IBV: Smough's Great Hammer - great hall, chest",
|
|
|
|
"Smough's Great Hammer"),
|
|
|
|
DS3LocationData("IBV: Yorshka's Spear - descent, dark room rafters chest", "Yorshka's Spear"),
|
|
|
|
DS3LocationData("IBV: Leo Ring - great hall, chest", "Leo Ring"),
|
|
|
|
DS3LocationData("IBV: Dorhys' Gnawing - Dorhys drop", "Dorhys' Gnawing",
|
|
|
|
hidden=True), # Behind illusory wall
|
|
|
|
DS3LocationData("IBV: Divine Blessing - great hall, mob drop",
|
|
|
|
"Divine Blessing", drop=True,
|
|
|
|
hidden=True), # Guaranteed drop from normal-looking Silver Knight
|
|
|
|
DS3LocationData("IBV: Large Titanite Shard - great hall, main floor mob drop",
|
|
|
|
"Large Titanite Shard", drop=True,
|
|
|
|
hidden=True), # Guaranteed drop from normal-looking Silver Knight
|
|
|
|
DS3LocationData("IBV: Large Titanite Shard - great hall, upstairs mob drop #1",
|
|
|
|
"Large Titanite Shard x2", drop=True,
|
|
|
|
hidden=True), # Guaranteed drop from normal-looking Silver Knight
|
|
|
|
DS3LocationData("IBV: Large Titanite Shard - great hall, upstairs mob drop #2",
|
|
|
|
"Large Titanite Shard x2", drop=True,
|
|
|
|
hidden=True), # Guaranteed drop from normal-looking Silver Knight
|
|
|
|
DS3LocationData("IBV: Roster of Knights - descent, first landing", "Roster of Knights"),
|
|
|
|
DS3LocationData("IBV: Twinkling Titanite - descent, lizard behind illusory wall",
|
|
|
|
"Twinkling Titanite", lizard=True, hidden=True), # Behind illusory wall
|
|
|
|
DS3LocationData("IBV: Twinkling Titanite - central, lizard before plaza",
|
|
|
|
"Twinkling Titanite", lizard=True),
|
|
|
|
DS3LocationData("IBV: Large Titanite Shard - Distant Manor, under overhang",
|
|
|
|
"Large Titanite Shard"),
|
|
|
|
DS3LocationData("IBV: Siegbräu - Siegward", "Siegbräu", missable=True, npc=True),
|
|
|
|
DS3LocationData("IBV: Emit Force - Siegward", "Emit Force", missable=True, npc=True),
|
|
|
|
DS3LocationData("IBV -> ID", None),
|
|
|
|
|
|
|
|
# After winning both Londor Pale Shade invasions
|
|
|
|
DS3LocationData("FS: Sneering Mask - Yoel's room, kill Londor Pale Shade twice",
|
|
|
|
"Sneering Mask", missable=True, hostile_npc=True),
|
|
|
|
DS3LocationData("FS: Pale Shade Robe - Yoel's room, kill Londor Pale Shade twice",
|
|
|
|
"Pale Shade Robe", missable=True, hostile_npc=True),
|
|
|
|
DS3LocationData("FS: Pale Shade Gloves - Yoel's room, kill Londor Pale Shade twice",
|
|
|
|
"Pale Shade Gloves", missable=True, hostile_npc=True),
|
|
|
|
DS3LocationData("FS: Pale Shade Trousers - Yoel's room, kill Londor Pale Shade twice",
|
|
|
|
"Pale Shade Trousers", missable=True, hostile_npc=True),
|
|
|
|
|
|
|
|
# Anri of Astora
|
|
|
|
DS3LocationData("IBV: Ring of the Evil Eye - Anri", "Ring of the Evil Eye", missable=True,
|
|
|
|
npc=True),
|
|
|
|
|
|
|
|
# Sirris quest after killing Creighton
|
|
|
|
DS3LocationData("FS: Mail Breaker - Sirris for killing Creighton", "Mail Breaker",
|
|
|
|
static='99,0:50006080::', missable=True, hostile_npc=True,
|
|
|
|
npc=True),
|
|
|
|
DS3LocationData("FS: Silvercat Ring - Sirris for killing Creighton", "Silvercat Ring",
|
|
|
|
missable=True, hostile_npc=True, npc=True),
|
|
|
|
DS3LocationData("IBV: Dragonslayer's Axe - Creighton drop", "Dragonslayer's Axe",
|
|
|
|
missable=True, hostile_npc=True, npc=True),
|
|
|
|
DS3LocationData("IBV: Creighton's Steel Mask - bridge after killing Creighton",
|
|
|
|
"Creighton's Steel Mask", missable=True, hostile_npc=True, npc=True),
|
|
|
|
DS3LocationData("IBV: Mirrah Chain Mail - bridge after killing Creighton",
|
|
|
|
"Mirrah Chain Mail", missable=True, hostile_npc=True, npc=True),
|
|
|
|
DS3LocationData("IBV: Mirrah Chain Gloves - bridge after killing Creighton",
|
|
|
|
"Mirrah Chain Gloves", missable=True, hostile_npc=True, npc=True),
|
|
|
|
DS3LocationData("IBV: Mirrah Chain Leggings - bridge after killing Creighton",
|
|
|
|
"Mirrah Chain Leggings", missable=True, hostile_npc=True, npc=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
|
|
|
"Irithyll Dungeon": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
DS3LocationData("ID: Titanite Slab - Siegward", "Titanite Slab", missable=True,
|
|
|
|
npc=True),
|
|
|
|
DS3LocationData("ID: Murakumo - Alva drop", "Murakumo", missable=True,
|
|
|
|
hostile_npc=True),
|
|
|
|
DS3LocationData("ID: Large Titanite Shard - after bonfire, second cell on left",
|
|
|
|
"Large Titanite Shard"),
|
|
|
|
DS3LocationData("ID: Fading Soul - B1 near, main hall", "Fading Soul"),
|
|
|
|
DS3LocationData("ID: Large Soul of a Nameless Soldier - B2, hall by stairs",
|
|
|
|
"Large Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("ID: Jailbreaker's Key - B1 far, cell after gate", "Jailbreaker's Key"),
|
|
|
|
DS3LocationData("ID: Pale Pine Resin - B1 far, cell with broken wall",
|
|
|
|
"Pale Pine Resin x2"),
|
|
|
|
DS3LocationData("ID: Simple Gem - B2 far, cell by stairs", "Simple Gem"),
|
|
|
|
DS3LocationData("ID: Large Soul of a Nameless Soldier - B2 far, by lift",
|
|
|
|
"Large Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("ID: Large Titanite Shard - B1 far, rightmost cell",
|
|
|
|
"Large Titanite Shard"),
|
|
|
|
DS3LocationData("ID: Homeward Bone - path from B2 to pit", "Homeward Bone x2"),
|
|
|
|
DS3LocationData("ID: Bellowing Dragoncrest Ring - drop from B1 towards pit",
|
|
|
|
"Bellowing Dragoncrest Ring", conditional=True),
|
|
|
|
DS3LocationData("ID: Soul of a Weary Warrior - by drop to pit", "Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("ID: Soul of a Crestfallen Knight - balcony above pit",
|
|
|
|
"Soul of a Crestfallen Knight"),
|
|
|
|
DS3LocationData("ID: Lightning Bolt - awning over pit", "Lightning Bolt x9"),
|
|
|
|
DS3LocationData("ID: Large Titanite Shard - pit #1", "Large Titanite Shard"),
|
|
|
|
DS3LocationData("ID: Profaned Flame - pit", "Profaned Flame"),
|
|
|
|
DS3LocationData("ID: Large Titanite Shard - pit #2", "Large Titanite Shard"),
|
|
|
|
DS3LocationData("ID: Soul of a Weary Warrior - stairs between pit and B3",
|
|
|
|
"Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("ID: Dung Pie - B3, by path from pit", "Dung Pie x4"),
|
|
|
|
DS3LocationData("ID: Ember - B3 center", "Ember"),
|
|
|
|
DS3LocationData("ID: Ember - B3 far right", "Ember"),
|
|
|
|
DS3LocationData("ID: Profaned Coal - B3 far, left cell", "Profaned Coal"),
|
|
|
|
DS3LocationData("ID: Large Titanite Shard - B3 near, right corner", "Large Titanite Shard"),
|
|
|
|
DS3LocationData("ID: Old Sorcerer Hat - B2 near, middle cell", "Old Sorcerer Hat"),
|
|
|
|
DS3LocationData("ID: Old Sorcerer Coat - B2 near, middle cell", "Old Sorcerer Coat"),
|
|
|
|
DS3LocationData("ID: Old Sorcerer Gauntlets - B2 near, middle cell",
|
|
|
|
"Old Sorcerer Gauntlets"),
|
|
|
|
DS3LocationData("ID: Old Sorcerer Boots - B2 near, middle cell", "Old Sorcerer Boots"),
|
|
|
|
DS3LocationData("ID: Large Soul of a Weary Warrior - just before Profaned Capital",
|
|
|
|
"Large Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("ID: Covetous Gold Serpent Ring - Siegward's cell",
|
|
|
|
"Covetous Gold Serpent Ring", conditional=True),
|
|
|
|
DS3LocationData("ID: Lightning Blade - B3 lift, middle platform", "Lightning Blade"),
|
|
|
|
DS3LocationData("ID: Rusted Coin - after bonfire, first cell on left", "Rusted Coin"),
|
|
|
|
DS3LocationData("ID: Dusk Crown Ring - B3 far, right cell", "Dusk Crown Ring"),
|
|
|
|
DS3LocationData("ID: Pickaxe - path from pit to B3", "Pickaxe"),
|
|
|
|
DS3LocationData("ID: Xanthous Ashes - B3 far, right cell", "Xanthous Ashes",
|
|
|
|
progression=True),
|
|
|
|
DS3LocationData("ID: Large Titanite Shard - B1 near, by door", "Large Titanite Shard"),
|
|
|
|
DS3LocationData("ID: Rusted Gold Coin - after bonfire, last cell on right",
|
|
|
|
"Rusted Gold Coin"),
|
|
|
|
DS3LocationData("ID: Old Cell Key - stairs between pit and B3", "Old Cell Key"),
|
|
|
|
DS3LocationData("ID: Covetous Silver Serpent Ring+1 - pit lift, middle platform",
|
|
|
|
"Covetous Silver Serpent Ring+1", ngp=True),
|
|
|
|
DS3LocationData("ID: Dragon Torso Stone - B3, outside lift", "Dragon Torso Stone"),
|
|
|
|
DS3LocationData("ID: Prisoner Chief's Ashes - B2 near, locked cell by stairs",
|
|
|
|
"Prisoner Chief's Ashes", progression=True),
|
|
|
|
DS3LocationData("ID: Great Magic Shield - B2 near, mob drop in far left cell",
|
|
|
|
"Great Magic Shield", drop=True,
|
|
|
|
hidden=True), # Guaranteed drop from a normal-looking Corpse-Grub
|
|
|
|
DS3LocationData("ID: Dragonslayer Lightning Arrow - pit, mimic in hall",
|
|
|
|
"Dragonslayer Lightning Arrow x10", mimic=True),
|
|
|
|
DS3LocationData("ID: Titanite Scale - B3 far, mimic in hall", "Titanite Scale x2",
|
|
|
|
mimic=True),
|
|
|
|
DS3LocationData("ID: Dark Clutch Ring - stairs between pit and B3, mimic",
|
|
|
|
"Dark Clutch Ring", mimic=True),
|
|
|
|
DS3LocationData("ID: Estus Shard - mimic on path from B2 to pit", "Estus Shard",
|
|
|
|
mimic=True),
|
|
|
|
DS3LocationData("ID: Titanite Chunk - balcony above pit, lizard", "Titanite Chunk",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("ID: Titanite Scale - B2 far, lizard", "Titanite Scale", lizard=True),
|
|
|
|
|
|
|
|
# These are missable because of a bug that causes them to be dropped wherever the giant is
|
|
|
|
# randomized to, instead of where the miniboss is in vanilla.
|
|
|
|
DS3LocationData("ID: Dung Pie - pit, miniboss drop", "Dung Pie x4",
|
|
|
|
miniboss=True, missable=True), # Giant slave drop
|
|
|
|
DS3LocationData("ID: Titanite Chunk - pit, miniboss drop", "Titanite Chunk",
|
|
|
|
miniboss=True, missable=True), # Giant Slave Drop
|
|
|
|
|
|
|
|
# Alva (requires ember)
|
|
|
|
DS3LocationData("ID: Alva Helm - B3 near, by Karla's cell, after killing Alva", "Alva Helm",
|
|
|
|
missable=True, npc=True),
|
|
|
|
DS3LocationData("ID: Alva Armor - B3 near, by Karla's cell, after killing Alva",
|
|
|
|
"Alva Armor", missable=True, npc=True),
|
|
|
|
DS3LocationData("ID: Alva Gauntlets - B3 near, by Karla's cell, after killing Alva",
|
|
|
|
"Alva Gauntlets", missable=True, npc=True),
|
|
|
|
DS3LocationData("ID: Alva Leggings - B3 near, by Karla's cell, after killing Alva",
|
|
|
|
"Alva Leggings", missable=True, npc=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
|
|
|
"Profaned Capital": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
DS3LocationData("PC: Soul of Yhorm the Giant", "Soul of Yhorm the Giant", boss=True),
|
|
|
|
DS3LocationData("PC: Cinders of a Lord - Yhorm the Giant",
|
|
|
|
"Cinders of a Lord - Yhorm the Giant", static="07,0:50002170::",
|
|
|
|
prominent=True, progression=True, boss=True),
|
|
|
|
DS3LocationData("PC: Logan's Scroll - chapel roof, NPC drop", "Logan's Scroll",
|
|
|
|
hostile_npc=True), # Sorcerer
|
|
|
|
DS3LocationData("PC: Purging Stone - chapel ground floor", "Purging Stone x3"),
|
|
|
|
DS3LocationData("PC: Rusted Coin - tower exterior", "Rusted Coin x2"),
|
|
|
|
DS3LocationData("PC: Rusted Gold Coin - halls above swamp", "Rusted Gold Coin"),
|
|
|
|
DS3LocationData("PC: Purging Stone - swamp, by chapel ladder", "Purging Stone"),
|
|
|
|
DS3LocationData("PC: Cursebite Ring - swamp, below halls", "Cursebite Ring"),
|
|
|
|
DS3LocationData("PC: Poison Gem - swamp, below halls", "Poison Gem"),
|
|
|
|
DS3LocationData("PC: Shriving Stone - swamp, by chapel door", "Shriving Stone"),
|
|
|
|
DS3LocationData("PC: Poison Arrow - chapel roof", "Poison Arrow x18"),
|
|
|
|
DS3LocationData("PC: Rubbish - chapel, down stairs from second floor", "Rubbish"),
|
|
|
|
DS3LocationData("PC: Onislayer Greatarrow - bridge", "Onislayer Greatarrow x8"),
|
|
|
|
DS3LocationData("PC: Large Soul of a Weary Warrior - bridge, far end",
|
|
|
|
"Large Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("PC: Rusted Coin - below bridge #1", "Rusted Coin"),
|
|
|
|
DS3LocationData("PC: Rusted Coin - below bridge #2", "Rusted Coin"),
|
|
|
|
DS3LocationData("PC: Blooming Purple Moss Clump - walkway above swamp",
|
|
|
|
"Blooming Purple Moss Clump x3"),
|
|
|
|
DS3LocationData("PC: Wrath of the Gods - chapel, drop from roof", "Wrath of the Gods"),
|
|
|
|
DS3LocationData("PC: Onislayer Greatbow - drop from bridge", "Onislayer Greatbow",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("PC: Jailer's Key Ring - hall past chapel", "Jailer's Key Ring",
|
|
|
|
progression=True),
|
|
|
|
DS3LocationData("PC: Ember - palace, far room", "Ember"),
|
|
|
|
DS3LocationData("PC: Flame Stoneplate Ring+1 - chapel, drop from roof towards entrance",
|
|
|
|
"Flame Stoneplate Ring+1", ngp=True, hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("PC: Magic Stoneplate Ring+2 - tower base", "Magic Stoneplate Ring+2",
|
|
|
|
ngp=True),
|
|
|
|
DS3LocationData("PC: Court Sorcerer Hood - chapel, second floor", "Court Sorcerer Hood"),
|
|
|
|
DS3LocationData("PC: Court Sorcerer Robe - chapel, second floor", "Court Sorcerer Robe"),
|
|
|
|
DS3LocationData("PC: Court Sorcerer Gloves - chapel, second floor", "Court Sorcerer Gloves"),
|
|
|
|
DS3LocationData("PC: Court Sorcerer Trousers - chapel, second floor",
|
|
|
|
"Court Sorcerer Trousers"),
|
|
|
|
DS3LocationData("PC: Storm Ruler - boss room", "Storm Ruler"),
|
|
|
|
DS3LocationData("PC: Undead Bone Shard - by bonfire", "Undead Bone Shard"),
|
|
|
|
DS3LocationData("PC: Eleonora - chapel ground floor, kill mob", "Eleonora",
|
|
|
|
drop=True,
|
|
|
|
hidden=True), # Guaranteed drop from a normal-looking Monstrosity of Sin
|
|
|
|
DS3LocationData("PC: Rusted Gold Coin - palace, mimic in far room", "Rusted Gold Coin x2",
|
|
|
|
mimic=True),
|
|
|
|
DS3LocationData("PC: Court Sorcerer's Staff - chapel, mimic on second floor",
|
|
|
|
"Court Sorcerer's Staff", mimic=True),
|
|
|
|
DS3LocationData("PC: Greatshield of Glory - palace, mimic in far room",
|
|
|
|
"Greatshield of Glory", mimic=True),
|
|
|
|
DS3LocationData("PC: Twinkling Titanite - halls above swamp, lizard #1",
|
|
|
|
"Twinkling Titanite", lizard=True),
|
|
|
|
DS3LocationData("PC: Twinkling Titanite - halls above swamp, lizard #2",
|
|
|
|
"Twinkling Titanite", lizard=True),
|
|
|
|
DS3LocationData("PC: Siegbräu - Siegward after killing boss", "Siegbräu",
|
|
|
|
missable=True, npc=True),
|
|
|
|
|
|
|
|
# Siegward drops (kill or quest)
|
|
|
|
DS3LocationData("PC: Storm Ruler - Siegward", "Storm Ruler", static='02,0:50006218::',
|
|
|
|
missable=True, drop=True, npc=True),
|
|
|
|
DS3LocationData("PC: Pierce Shield - Siegward", "Pierce Shield", missable=True,
|
|
|
|
drop=True, npc=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
# We consider "Anor Londo" to be everything accessible only after killing Pontiff. This doesn't
|
|
|
|
# match up one-to-one with where the game pops up the region name, but it balances items better
|
|
|
|
# and covers the region that's full of DS1 Anor Londo references.
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
"Anor Londo": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
DS3LocationData("AL: Soul of Aldrich", "Soul of Aldrich", boss=True),
|
|
|
|
DS3LocationData("AL: Cinders of a Lord - Aldrich", "Cinders of a Lord - Aldrich",
|
|
|
|
static='06,0:50002130::', prominent=True, progression=True,
|
|
|
|
boss=True),
|
|
|
|
DS3LocationData("AL: Yorshka's Chime - kill Yorshka", "Yorshka's Chime", missable=True,
|
|
|
|
drop=True,
|
|
|
|
npc=True), # Hidden walkway, missable because it will break Sirris's quest
|
|
|
|
DS3LocationData("AL: Drang Twinspears - plaza, NPC drop", "Drang Twinspears", drop=True,
|
|
|
|
hidden=True),
|
|
|
|
DS3LocationData("AL: Estus Shard - dark cathedral, by left stairs", "Estus Shard"),
|
|
|
|
DS3LocationData("AL: Painting Guardian's Curved Sword - prison tower rafters",
|
|
|
|
"Painting Guardian's Curved Sword", hidden=True), # Invisible walkway
|
|
|
|
DS3LocationData("AL: Brass Helm - tomb", "Brass Helm",
|
|
|
|
hidden=True), # Behind illusory wall
|
|
|
|
DS3LocationData("AL: Brass Armor - tomb", "Brass Armor",
|
|
|
|
hidden=True), # Behind illusory wall
|
|
|
|
DS3LocationData("AL: Brass Gauntlets - tomb", "Brass Gauntlets",
|
|
|
|
hidden=True), # Behind illusory wall
|
|
|
|
DS3LocationData("AL: Brass Leggings - tomb", "Brass Leggings",
|
|
|
|
hidden=True), # Behind illusory wall
|
|
|
|
DS3LocationData("AL: Human Dregs - water reserves", "Human Dregs",
|
|
|
|
hidden=True), # Behind illusory wall
|
|
|
|
DS3LocationData("AL: Ember - spiral staircase, bottom", "Ember"),
|
|
|
|
DS3LocationData("AL: Large Titanite Shard - bottom of the furthest buttress",
|
|
|
|
"Large Titanite Shard"),
|
|
|
|
DS3LocationData("AL: Large Titanite Shard - right after light cathedral",
|
|
|
|
"Large Titanite Shard"),
|
|
|
|
DS3LocationData("AL: Large Titanite Shard - walkway, side path by cathedral",
|
|
|
|
"Large Titanite Shard"),
|
|
|
|
DS3LocationData("AL: Soul of a Weary Warrior - plaza, nearer", "Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("AL: Ember - plaza, right side", "Ember"),
|
|
|
|
DS3LocationData("AL: Ember - plaza, further", "Ember"),
|
|
|
|
DS3LocationData("AL: Large Titanite Shard - balcony by dead giants",
|
|
|
|
"Large Titanite Shard"),
|
|
|
|
DS3LocationData("AL: Dark Stoneplate Ring - by dark stairs up from plaza",
|
|
|
|
"Dark Stoneplate Ring"),
|
|
|
|
DS3LocationData("AL: Large Titanite Shard - bottom of the nearest buttress",
|
|
|
|
"Large Titanite Shard"),
|
|
|
|
DS3LocationData("AL: Deep Gem - water reserves", "Deep Gem"),
|
|
|
|
DS3LocationData("AL: Titanite Scale - top of ladder up to buttresses", "Titanite Scale"),
|
|
|
|
DS3LocationData("AL: Dragonslayer Greatarrow - drop from nearest buttress",
|
|
|
|
"Dragonslayer Greatarrow x5", static='06,0:53700620::',
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("AL: Dragonslayer Greatbow - drop from nearest buttress",
|
|
|
|
"Dragonslayer Greatbow", static='06,0:53700620::',
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("AL: Easterner's Ashes - below top of furthest buttress",
|
|
|
|
"Easterner's Ashes", progression=True),
|
|
|
|
DS3LocationData("AL: Painting Guardian Hood - prison tower, rafters",
|
|
|
|
"Painting Guardian Hood", hidden=True), # Invisible walkway
|
|
|
|
DS3LocationData("AL: Painting Guardian Gown - prison tower, rafters",
|
|
|
|
"Painting Guardian Gown", hidden=True), # Invisible walkway
|
|
|
|
DS3LocationData("AL: Painting Guardian Gloves - prison tower, rafters",
|
|
|
|
"Painting Guardian Gloves", hidden=True), # Invisible walkway
|
|
|
|
DS3LocationData("AL: Painting Guardian Waistcloth - prison tower, rafters",
|
|
|
|
"Painting Guardian Waistcloth", hidden=True), # Invisible walkway
|
|
|
|
DS3LocationData("AL: Soul of a Crestfallen Knight - right of dark cathedral entrance",
|
|
|
|
"Soul of a Crestfallen Knight"),
|
|
|
|
DS3LocationData("AL: Moonlight Arrow - dark cathedral, up right stairs",
|
|
|
|
"Moonlight Arrow x6"),
|
|
|
|
DS3LocationData("AL: Proof of a Concord Kept - dark cathedral, up left stairs",
|
|
|
|
"Proof of a Concord Kept"),
|
|
|
|
DS3LocationData("AL: Large Soul of a Weary Warrior - left of dark cathedral entrance",
|
|
|
|
"Large Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("AL: Giant's Coal - by giant near dark cathedral", "Giant's Coal"),
|
|
|
|
DS3LocationData("AL: Havel's Ring+2 - prison tower, rafters", "Havel's Ring+2", ngp=True,
|
|
|
|
hidden=True), # Invisible walkway
|
|
|
|
DS3LocationData("AL: Ring of Favor+1 - light cathedral, upstairs", "Ring of Favor+1",
|
|
|
|
ngp=True),
|
|
|
|
DS3LocationData("AL: Sun Princess Ring - dark cathedral, after boss", "Sun Princess Ring"),
|
|
|
|
DS3LocationData("AL: Reversal Ring - tomb, chest in corner", "Reversal Ring",
|
|
|
|
hidden=True), # Behind illusory wall
|
|
|
|
DS3LocationData("AL: Golden Ritual Spear - light cathedral, mimic upstairs",
|
|
|
|
"Golden Ritual Spear", mimic=True),
|
|
|
|
DS3LocationData("AL: Ring of Favor - water reserves, both minibosses", "Ring of Favor",
|
|
|
|
miniboss=True,
|
|
|
|
hidden=True), # Sulyvahn's Beast Duo drop, behind illusory wall
|
|
|
|
DS3LocationData("AL: Blade of the Darkmoon - Yorshka with Darkmoon Loyalty",
|
|
|
|
"Blade of the Darkmoon", missable=True, drop=True,
|
|
|
|
npc=True), # Hidden walkway, missable because it will break Sirris's quest
|
|
|
|
DS3LocationData("AL: Simple Gem - light cathedral, lizard upstairs", "Simple Gem",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("AL: Twinkling Titanite - lizard after light cathedral #1",
|
|
|
|
"Twinkling Titanite", lizard=True),
|
|
|
|
DS3LocationData("AL: Twinkling Titanite - lizard after light cathedral #2",
|
|
|
|
"Twinkling Titanite", lizard=True),
|
|
|
|
DS3LocationData("AL: Aldrich's Ruby - dark cathedral, miniboss", "Aldrich's Ruby",
|
|
|
|
miniboss=True), # Deep Accursed drop
|
|
|
|
DS3LocationData("AL: Aldrich Faithful - water reserves, talk to McDonnel", "Aldrich Faithful",
|
|
|
|
hidden=True), # Behind illusory wall
|
|
|
|
|
|
|
|
DS3LocationData("FS: Budding Green Blossom - shop after killing Creighton and AL boss",
|
|
|
|
"Budding Green Blossom", static='99,0:-1:110000,70000118:',
|
|
|
|
missable=True, npc=True,
|
|
|
|
shop=True), # sold by Shrine Maiden after killing Aldrich and helping
|
|
|
|
# Sirris defeat Creighton
|
|
|
|
|
|
|
|
# Sirris (quest completion)
|
|
|
|
DS3LocationData("FS: Sunset Shield - by grave after killing Hodrick w/Sirris",
|
|
|
|
"Sunset Shield", missable=True, hostile_npc=True, npc=True),
|
|
|
|
# In Pit of Hollows after killing Hodrick
|
|
|
|
DS3LocationData("US: Sunset Helm - Pit of Hollows after killing Hodrick w/Sirris",
|
|
|
|
"Sunset Helm", missable=True, hostile_npc=True, npc=True),
|
|
|
|
DS3LocationData("US: Sunset Armor - pit of hollows after killing Hodrick w/Sirris",
|
|
|
|
"Sunset Armor", missable=True, hostile_npc=True, npc=True),
|
|
|
|
DS3LocationData("US: Sunset Gauntlets - pit of hollows after killing Hodrick w/Sirris",
|
|
|
|
"Sunset Gauntlets", missable=True, hostile_npc=True, npc=True),
|
|
|
|
DS3LocationData("US: Sunset Leggings - pit of hollows after killing Hodrick w/Sirris",
|
|
|
|
"Sunset Leggings", missable=True, hostile_npc=True, npc=True),
|
|
|
|
|
|
|
|
# Shrine Handmaid after killing Sulyvahn's Beast Duo
|
|
|
|
DS3LocationData("FS: Helm of Favor - shop after killing water reserve minibosses",
|
|
|
|
"Helm of Favor", hidden=True, miniboss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Embraced Armor of Favor - shop after killing water reserve minibosses",
|
|
|
|
"Embraced Armor of Favor", hidden=True, miniboss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Gauntlets of Favor - shop after killing water reserve minibosses",
|
|
|
|
"Gauntlets of Favor", hidden=True, miniboss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Leggings of Favor - shop after killing water reserve minibosses",
|
|
|
|
"Leggings of Favor", hidden=True, miniboss=True, shop=True),
|
|
|
|
|
|
|
|
# Anri of Astora
|
|
|
|
DS3LocationData("AL: Chameleon - tomb after marrying Anri", "Chameleon", missable=True,
|
|
|
|
npc=True),
|
|
|
|
DS3LocationData("AL: Anri's Straight Sword - Anri quest", "Anri's Straight Sword",
|
|
|
|
missable=True, npc=True),
|
|
|
|
|
|
|
|
# Shrine Handmaid after killing Ringfinger Leonhard
|
|
|
|
# This is listed here even though you can kill Leonhard immediately because we want the
|
|
|
|
# logic to assume people will do his full quest. Missable because he can disappear forever
|
|
|
|
# if you use up all your Pale Tongues.
|
|
|
|
DS3LocationData("FS: Leonhard's Garb - shop after killing Leonhard",
|
|
|
|
"Leonhard's Garb", hidden=True, npc=True, shop=True, missable=True),
|
|
|
|
DS3LocationData("FS: Leonhard's Gauntlets - shop after killing Leonhard",
|
|
|
|
"Leonhard's Gauntlets", hidden=True, npc=True, shop=True,
|
|
|
|
missable=True),
|
|
|
|
DS3LocationData("FS: Leonhard's Trousers - shop after killing Leonhard",
|
|
|
|
"Leonhard's Trousers", hidden=True, npc=True, shop=True,
|
|
|
|
missable=True),
|
|
|
|
|
|
|
|
# Shrine Handmaid after killing Alrich, Devourer of Gods
|
|
|
|
DS3LocationData("FS: Smough's Helm - shop after killing AL boss", "Smough's Helm",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Smough's Armor - shop after killing AL boss", "Smough's Armor",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Smough's Gauntlets - shop after killing AL boss", "Smough's Gauntlets",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Smough's Leggings - shop after killing AL boss", "Smough's Leggings",
|
|
|
|
boss=True, shop=True),
|
|
|
|
|
|
|
|
# Ringfinger Leonhard (quest or kill)
|
|
|
|
DS3LocationData("AL: Crescent Moon Sword - Leonhard drop", "Crescent Moon Sword",
|
|
|
|
missable=True, npc=True),
|
|
|
|
DS3LocationData("AL: Silver Mask - Leonhard drop", "Silver Mask", missable=True,
|
|
|
|
npc=True),
|
|
|
|
DS3LocationData("AL: Soul of Rosaria - Leonhard drop", "Soul of Rosaria", missable=True,
|
|
|
|
npc=True),
|
|
|
|
|
|
|
|
# Shrine Handmaid after killing Anri or completing their quest
|
|
|
|
DS3LocationData("FS: Elite Knight Helm - shop after Anri quest", "Elite Knight Helm",
|
|
|
|
npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Elite Knight Armor - shop after Anri quest", "Elite Knight Armor",
|
|
|
|
npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Elite Knight Gauntlets - shop after Anri quest",
|
|
|
|
"Elite Knight Gauntlets", npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Elite Knight Leggings - shop after Anri quest",
|
|
|
|
"Elite Knight Leggings", npc=True, shop=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
|
|
|
"Lothric Castle": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
DS3LocationData("LC: Soul of Dragonslayer Armour", "Soul of Dragonslayer Armour",
|
|
|
|
prominent=True, boss=True),
|
|
|
|
DS3LocationData("LC: Sniper Bolt - moat, right path end", "Sniper Bolt x11"),
|
|
|
|
DS3LocationData("LC: Sniper Crossbow - moat, right path end", "Sniper Crossbow"),
|
|
|
|
DS3LocationData("LC: Titanite Scale - dark room, upper balcony", "Titanite Scale"),
|
|
|
|
DS3LocationData("LC: Titanite Chunk - dark room mid, out door opposite wyvern",
|
|
|
|
"Titanite Chunk"),
|
|
|
|
DS3LocationData("LC: Greatlance - overlooking Dragon Barracks bonfire", "Greatlance"),
|
|
|
|
DS3LocationData("LC: Titanite Chunk - ascent, first balcony", "Titanite Chunk"),
|
|
|
|
DS3LocationData("LC: Titanite Chunk - ascent, turret before barricades", "Titanite Chunk"),
|
|
|
|
DS3LocationData("LC: Sacred Bloom Shield - ascent, behind illusory wall",
|
|
|
|
"Sacred Bloom Shield", hidden=True), # Behind illusory wall
|
|
|
|
DS3LocationData("LC: Titanite Chunk - ascent, final turret", "Titanite Chunk x2"),
|
|
|
|
DS3LocationData("LC: Refined Gem - plaza", "Refined Gem"),
|
|
|
|
DS3LocationData("LC: Soul of a Crestfallen Knight - by lift bottom",
|
|
|
|
"Soul of a Crestfallen Knight"),
|
|
|
|
DS3LocationData("LC: Undead Bone Shard - moat, far ledge", "Undead Bone Shard"),
|
|
|
|
DS3LocationData("LC: Lightning Urn - moat, right path, first room", "Lightning Urn x3"),
|
|
|
|
DS3LocationData("LC: Titanite Chunk - moat #1", "Titanite Chunk"),
|
|
|
|
DS3LocationData("LC: Titanite Chunk - moat #2", "Titanite Chunk"),
|
|
|
|
DS3LocationData("LC: Titanite Chunk - moat, near ledge", "Titanite Chunk"),
|
|
|
|
DS3LocationData("LC: Caitha's Chime - chapel, drop onto roof", "Caitha's Chime"),
|
|
|
|
DS3LocationData("LC: Lightning Urn - plaza", "Lightning Urn x6"),
|
|
|
|
DS3LocationData("LC: Ember - plaza, by gate", "Ember"),
|
|
|
|
DS3LocationData("LC: Raw Gem - plaza left", "Raw Gem"),
|
|
|
|
DS3LocationData("LC: Black Firebomb - dark room lower", "Black Firebomb x3"),
|
|
|
|
DS3LocationData("LC: Pale Pine Resin - dark room upper, by mimic", "Pale Pine Resin"),
|
|
|
|
DS3LocationData("LC: Large Soul of a Weary Warrior - main hall, by lever",
|
|
|
|
"Large Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("LC: Sunlight Medal - by lift top", "Sunlight Medal"),
|
|
|
|
DS3LocationData("LC: Soul of a Crestfallen Knight - wyvern room, balcony",
|
|
|
|
"Soul of a Crestfallen Knight", hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("LC: Titanite Chunk - altar roof", "Titanite Chunk"),
|
|
|
|
DS3LocationData("LC: Titanite Scale - dark room mid, out door opposite wyvern",
|
|
|
|
"Titanite Scale"),
|
|
|
|
DS3LocationData("LC: Large Soul of a Nameless Soldier - moat, right path",
|
|
|
|
"Large Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("LC: Knight's Ring - altar", "Knight's Ring"),
|
|
|
|
DS3LocationData("LC: Ember - main hall, left of stairs", "Ember"),
|
|
|
|
DS3LocationData("LC: Large Soul of a Weary Warrior - ascent, last turret",
|
|
|
|
"Large Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("LC: Ember - by Dragon Barracks bonfire", "Ember"),
|
|
|
|
DS3LocationData("LC: Twinkling Titanite - ascent, side room", "Twinkling Titanite"),
|
|
|
|
DS3LocationData("LC: Large Soul of a Nameless Soldier - dark room mid",
|
|
|
|
"Large Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("LC: Ember - plaza center", "Ember"),
|
|
|
|
DS3LocationData("LC: Winged Knight Helm - ascent, behind illusory wall",
|
|
|
|
"Winged Knight Helm", hidden=True),
|
|
|
|
DS3LocationData("LC: Winged Knight Armor - ascent, behind illusory wall",
|
|
|
|
"Winged Knight Armor", hidden=True),
|
|
|
|
DS3LocationData("LC: Winged Knight Gauntlets - ascent, behind illusory wall",
|
|
|
|
"Winged Knight Gauntlets", hidden=True),
|
|
|
|
DS3LocationData("LC: Winged Knight Leggings - ascent, behind illusory wall",
|
|
|
|
"Winged Knight Leggings", hidden=True),
|
|
|
|
DS3LocationData("LC: Rusted Coin - chapel", "Rusted Coin x2"),
|
|
|
|
DS3LocationData("LC: Braille Divine Tome of Lothric - wyvern room",
|
|
|
|
"Braille Divine Tome of Lothric", hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("LC: Red Tearstone Ring - chapel, drop onto roof", "Red Tearstone Ring"),
|
|
|
|
DS3LocationData("LC: Twinkling Titanite - moat, left side", "Twinkling Titanite x2"),
|
|
|
|
DS3LocationData("LC: Large Soul of a Nameless Soldier - plaza left, by pillar",
|
|
|
|
"Large Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("LC: Titanite Scale - altar", "Titanite Scale x3"),
|
|
|
|
DS3LocationData("LC: Titanite Scale - chapel, chest", "Titanite Scale"),
|
|
|
|
DS3LocationData("LC: Hood of Prayer", "Hood of Prayer"),
|
|
|
|
DS3LocationData("LC: Robe of Prayer - ascent, chest at beginning", "Robe of Prayer"),
|
|
|
|
DS3LocationData("LC: Skirt of Prayer - ascent, chest at beginning", "Skirt of Prayer"),
|
|
|
|
DS3LocationData("LC: Spirit Tree Crest Shield - basement, chest",
|
|
|
|
"Spirit Tree Crest Shield"),
|
|
|
|
DS3LocationData("LC: Titanite Scale - basement, chest", "Titanite Scale"),
|
|
|
|
DS3LocationData("LC: Twinkling Titanite - basement, chest #1", "Twinkling Titanite"),
|
|
|
|
DS3LocationData("LC: Twinkling Titanite - basement, chest #2", "Twinkling Titanite x2"),
|
|
|
|
DS3LocationData("LC: Life Ring+2 - dark room mid, out door opposite wyvern, drop down",
|
|
|
|
"Life Ring+2", ngp=True, hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("LC: Dark Stoneplate Ring+1 - wyvern room, balcony",
|
|
|
|
"Dark Stoneplate Ring+1", ngp=True, hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("LC: Thunder Stoneplate Ring+2 - chapel, drop onto roof",
|
|
|
|
"Thunder Stoneplate Ring+2", ngp=True),
|
|
|
|
DS3LocationData("LC: Sunlight Straight Sword - wyvern room, mimic",
|
|
|
|
"Sunlight Straight Sword", mimic=True, hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("LC: Titanite Scale - dark room, upper, mimic", "Titanite Scale x3",
|
|
|
|
mimic=True),
|
|
|
|
DS3LocationData("LC: Ember - wyvern room, wyvern foot mob drop", "Ember x2",
|
|
|
|
drop=True, hidden=True), # Hidden fall, Pus of Man Wyvern drop
|
|
|
|
DS3LocationData("LC: Titanite Chunk - wyvern room, wyvern foot mob drop", "Titanite Chunk x2",
|
|
|
|
drop=True, hidden=True), # Hidden fall, Pus of Man Wyvern drop
|
|
|
|
DS3LocationData("LC: Ember - dark room mid, pus of man mob drop", "Ember x2",
|
|
|
|
drop=True), # Pus of Man Wyvern drop
|
|
|
|
DS3LocationData("LC: Titanite Chunk - dark room mid, pus of man mob drop",
|
|
|
|
"Titanite Chunk x2"),
|
|
|
|
DS3LocationData("LC: Irithyll Rapier - basement, miniboss drop", "Irithyll Rapier",
|
|
|
|
miniboss=True), # Boreal Outrider drop
|
|
|
|
DS3LocationData("LC: Twinkling Titanite - dark room mid, out door opposite wyvern, lizard",
|
|
|
|
"Twinkling Titanite x2", lizard=True, missable=True),
|
|
|
|
DS3LocationData("LC: Twinkling Titanite - moat, right path, lizard",
|
|
|
|
"Twinkling Titanite x2", lizard=True, missable=True),
|
|
|
|
DS3LocationData("LC: Gotthard Twinswords - by Grand Archives door, after PC and AL bosses",
|
|
|
|
"Gotthard Twinswords", conditional=True),
|
|
|
|
DS3LocationData("LC: Grand Archives Key - by Grand Archives door, after PC and AL bosses",
|
|
|
|
"Grand Archives Key", prominent=True, progression=True,
|
|
|
|
conditional=True),
|
|
|
|
DS3LocationData("LC: Titanite Chunk - down stairs after boss", "Titanite Chunk"),
|
|
|
|
|
|
|
|
# Eygon of Carim (kill or quest)
|
|
|
|
DS3LocationData("FS: Morne's Great Hammer - Eygon", "Morne's Great Hammer", npc=True),
|
|
|
|
DS3LocationData("FS: Moaning Shield - Eygon", "Moaning Shield", npc=True),
|
|
|
|
|
|
|
|
# Shrine Handmaid after killing Dragonslayer Armour (or Eygon of Carim)
|
|
|
|
DS3LocationData("FS: Dancer's Crown - shop after killing LC entry boss", "Dancer's Crown",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Dancer's Armor - shop after killing LC entry boss", "Dancer's Armor",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Dancer's Gauntlets - shop after killing LC entry boss",
|
|
|
|
"Dancer's Gauntlets", boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Dancer's Leggings - shop after killing LC entry boss",
|
|
|
|
"Dancer's Leggings", boss=True, shop=True),
|
|
|
|
|
|
|
|
# Shrine Handmaid after killing Dragonslayer Armour (or Eygon of Carim)
|
|
|
|
DS3LocationData("FS: Morne's Helm - shop after killing Eygon or LC boss", "Morne's Helm",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Morne's Armor - shop after killing Eygon or LC boss", "Morne's Armor",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Morne's Gauntlets - shop after killing Eygon or LC boss",
|
|
|
|
"Morne's Gauntlets", boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Morne's Leggings - shop after killing Eygon or LC boss",
|
|
|
|
"Morne's Leggings", boss=True, shop=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
|
|
|
"Consumed King's Garden": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
DS3LocationData("CKG: Soul of Consumed Oceiros", "Soul of Consumed Oceiros",
|
|
|
|
prominent=True, boss=True),
|
|
|
|
# Could classify this as "hidden" because it's midway down an elevator, but the elevator is
|
|
|
|
# so slow and the midway point is so obvious that it's not actually hard to find.
|
|
|
|
DS3LocationData("CKG: Estus Shard - balcony", "Estus Shard"),
|
|
|
|
DS3LocationData("CKG: Shadow Mask - under center platform", "Shadow Mask"),
|
|
|
|
DS3LocationData("CKG: Shadow Garb - under rotunda", "Shadow Garb"),
|
|
|
|
DS3LocationData("CKG: Shadow Gauntlets - under rotunda", "Shadow Gauntlets"),
|
|
|
|
DS3LocationData("CKG: Shadow Leggings - under rotunda", "Shadow Leggings"),
|
|
|
|
DS3LocationData("CKG: Black Firebomb - under rotunda", "Black Firebomb x2"),
|
|
|
|
DS3LocationData("CKG: Claw - under rotunda", "Claw"),
|
|
|
|
DS3LocationData("CKG: Titanite Chunk - up lone stairway", "Titanite Chunk"),
|
|
|
|
DS3LocationData("CKG: Dragonscale Ring - shortcut, leave halfway down lift",
|
|
|
|
"Dragonscale Ring"),
|
|
|
|
DS3LocationData("CKG: Human Pine Resin - toxic pool, past rotunda", "Human Pine Resin"),
|
|
|
|
DS3LocationData("CKG: Titanite Chunk - shortcut", "Titanite Chunk"),
|
|
|
|
DS3LocationData("CKG: Titanite Chunk - balcony, drop onto rubble", "Titanite Chunk"),
|
|
|
|
DS3LocationData("CKG: Soul of a Weary Warrior - before first lift",
|
|
|
|
"Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("CKG: Dark Gem - under lone stairway", "Dark Gem"),
|
|
|
|
DS3LocationData("CKG: Titanite Scale - shortcut", "Titanite Scale"),
|
|
|
|
DS3LocationData("CKG: Human Pine Resin - pool by lift", "Human Pine Resin x2"),
|
|
|
|
DS3LocationData("CKG: Titanite Chunk - right of shortcut lift bottom", "Titanite Chunk"),
|
|
|
|
DS3LocationData("CKG: Ring of Sacrifice - under balcony", "Ring of Sacrifice"),
|
|
|
|
DS3LocationData("CKG: Wood Grain Ring+1 - by first elevator bottom", "Wood Grain Ring+1",
|
|
|
|
ngp=True),
|
|
|
|
DS3LocationData("CKG: Sage Ring+2 - balcony, drop onto rubble, jump back", "Sage Ring+2",
|
|
|
|
ngp=True, hidden=True),
|
|
|
|
DS3LocationData("CKG: Titanite Scale - tomb, chest #1", "Titanite Scale"),
|
|
|
|
DS3LocationData("CKG: Titanite Scale - tomb, chest #2", "Titanite Scale"),
|
|
|
|
DS3LocationData("CKG: Magic Stoneplate Ring - mob drop before boss",
|
|
|
|
"Magic Stoneplate Ring", drop=True,
|
|
|
|
hidden=True), # Guaranteed drop from a normal-looking Cathedral Knight
|
|
|
|
|
|
|
|
# After Oceiros's boss room, only once the Drakeblood summon in AP has been killed
|
|
|
|
DS3LocationData("CKG: Drakeblood Helm - tomb, after killing AP mausoleum NPC",
|
|
|
|
"Drakeblood Helm", hostile_npc=True, hidden=True),
|
|
|
|
DS3LocationData("CKG: Drakeblood Armor - tomb, after killing AP mausoleum NPC",
|
|
|
|
"Drakeblood Armor", hostile_npc=True, hidden=True),
|
|
|
|
DS3LocationData("CKG: Drakeblood Gauntlets - tomb, after killing AP mausoleum NPC",
|
|
|
|
"Drakeblood Gauntlets", hostile_npc=True, hidden=True),
|
|
|
|
DS3LocationData("CKG: Drakeblood Leggings - tomb, after killing AP mausoleum NPC",
|
|
|
|
"Drakeblood Leggings", hostile_npc=True, hidden=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
|
|
|
"Grand Archives": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
DS3LocationData("GA: Titanite Slab - final elevator secret", "Titanite Slab",
|
|
|
|
hidden=True),
|
|
|
|
DS3LocationData("GA: Soul of the Twin Princes", "Soul of the Twin Princes", boss=True),
|
|
|
|
DS3LocationData("GA: Cinders of a Lord - Lothric Prince",
|
|
|
|
"Cinders of a Lord - Lothric Prince",
|
|
|
|
static="09,0:50002040::", prominent=True, progression=True,
|
|
|
|
boss=True),
|
|
|
|
DS3LocationData("GA: Onikiri and Ubadachi - outside 5F, NPC drop", "Onikiri and Ubadachi",
|
|
|
|
hostile_npc=True, # Black Hand Kamui drop
|
|
|
|
missable=True), # This is placed at the location the NPC gets randomized
|
|
|
|
# to, which makes it hard to include in logic.
|
|
|
|
DS3LocationData("GA: Golden Wing Crest Shield - outside 5F, NPC drop",
|
|
|
|
"Golden Wing Crest Shield",
|
|
|
|
hostile_npc=True), # Lion Knight Albert drop
|
|
|
|
DS3LocationData("GA: Sage's Crystal Staff - outside 5F, NPC drop",
|
|
|
|
"Sage's Crystal Staff",
|
|
|
|
hostile_npc=True), # Daughter of Crystal Kriemhild drop
|
|
|
|
DS3LocationData("GA: Titanite Chunk - 1F, up right stairs", "Titanite Chunk"),
|
|
|
|
DS3LocationData("GA: Titanite Chunk - 1F, path from wax pool", "Titanite Chunk"),
|
|
|
|
DS3LocationData("GA: Soul of a Crestfallen Knight - 1F, loop left after drop",
|
|
|
|
"Soul of a Crestfallen Knight"),
|
|
|
|
DS3LocationData("GA: Titanite Chunk - 1F, balcony", "Titanite Chunk"),
|
|
|
|
DS3LocationData("GA: Fleshbite Ring - up stairs from 4F", "Fleshbite Ring"),
|
|
|
|
DS3LocationData("GA: Soul of a Crestfallen Knight - path to dome",
|
|
|
|
"Soul of a Crestfallen Knight"),
|
|
|
|
DS3LocationData("GA: Soul of a Nameless Soldier - dark room", "Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("GA: Crystal Chime - 1F, path from wax pool", "Crystal Chime"),
|
|
|
|
DS3LocationData("GA: Titanite Scale - dark room, upstairs", "Titanite Scale"),
|
|
|
|
DS3LocationData("GA: Estus Shard - dome, far balcony", "Estus Shard"),
|
|
|
|
DS3LocationData("GA: Homeward Bone - 2F early balcony", "Homeward Bone x3"),
|
|
|
|
DS3LocationData("GA: Titanite Scale - 2F, titanite scale atop bookshelf", "Titanite Scale",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("GA: Titanite Chunk - 2F, by wax pool", "Titanite Chunk"),
|
|
|
|
DS3LocationData("GA: Hollow Gem - rooftops lower, in hall", "Hollow Gem",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("GA: Titanite Scale - 3F, corner up stairs", "Titanite Scale"),
|
|
|
|
DS3LocationData("GA: Titanite Scale - 1F, up stairs on bookshelf", "Titanite Scale"),
|
|
|
|
DS3LocationData("GA: Titanite Scale - 3F, by ladder to 2F late", "Titanite Scale",
|
|
|
|
hidden=True), # Hidden by a table
|
|
|
|
DS3LocationData("GA: Shriving Stone - 2F late, by ladder from 3F", "Shriving Stone"),
|
|
|
|
DS3LocationData("GA: Large Soul of a Crestfallen Knight - 4F, back",
|
|
|
|
"Large Soul of a Crestfallen Knight"),
|
|
|
|
DS3LocationData("GA: Titanite Chunk - rooftops, balcony", "Titanite Chunk"),
|
|
|
|
DS3LocationData("GA: Titanite Scale - rooftops lower, path to 2F", "Titanite Scale x3",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("GA: Titanite Chunk - rooftops lower, ledge by buttress", "Titanite Chunk",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("GA: Soul of a Weary Warrior - rooftops, by lizards",
|
|
|
|
"Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("GA: Titanite Chunk - rooftops, just before 5F", "Titanite Chunk"),
|
|
|
|
DS3LocationData("GA: Ember - 5F, by entrance", "Ember"),
|
|
|
|
DS3LocationData("GA: Blessed Gem - rafters", "Blessed Gem"),
|
|
|
|
DS3LocationData("GA: Titanite Chunk - 5F, far balcony", "Titanite Chunk x2"),
|
|
|
|
DS3LocationData("GA: Large Soul of a Crestfallen Knight - outside 5F",
|
|
|
|
"Large Soul of a Crestfallen Knight"),
|
|
|
|
DS3LocationData("GA: Avelyn - 1F, drop from 3F onto bookshelves", "Avelyn",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("GA: Titanite Chunk - 2F, right after dark room", "Titanite Chunk"),
|
|
|
|
DS3LocationData("GA: Hunter's Ring - dome, very top", "Hunter's Ring"),
|
|
|
|
DS3LocationData("GA: Divine Pillars of Light - cage above rafters",
|
|
|
|
"Divine Pillars of Light"),
|
|
|
|
DS3LocationData("GA: Power Within - dark room, behind retractable bookshelf",
|
|
|
|
"Power Within", hidden=True), # Switch in darkened room
|
|
|
|
DS3LocationData("GA: Sage Ring+1 - rafters, second level down", "Sage Ring+1", ngp=True),
|
|
|
|
DS3LocationData("GA: Lingering Dragoncrest Ring+2 - dome, room behind spire",
|
|
|
|
"Lingering Dragoncrest Ring+2", ngp=True),
|
|
|
|
DS3LocationData("GA: Divine Blessing - rafters, down lower level ladder",
|
|
|
|
"Divine Blessing"),
|
|
|
|
DS3LocationData("GA: Twinkling Titanite - rafters, down lower level ladder",
|
|
|
|
"Twinkling Titanite x3"),
|
|
|
|
DS3LocationData("GA: Witch's Locks - dark room, behind retractable bookshelf",
|
|
|
|
"Witch's Locks", hidden=True), # Switch in darkened room
|
|
|
|
DS3LocationData("GA: Titanite Slab - 1F, after pulling 2F switch", "Titanite Slab",
|
|
|
|
hidden=True),
|
|
|
|
DS3LocationData("GA: Titanite Scale - 4F, chest by exit", "Titanite Scale x3"),
|
|
|
|
DS3LocationData("GA: Soul Stream - 3F, behind illusory wall", "Soul Stream",
|
|
|
|
hidden=True), # Behind illusory wall
|
|
|
|
DS3LocationData("GA: Scholar Ring - 2F, between late and early", "Scholar Ring"),
|
|
|
|
DS3LocationData("GA: Undead Bone Shard - 5F, by entrance", "Undead Bone Shard"),
|
|
|
|
DS3LocationData("GA: Titanite Slab - dome, kill all mobs", "Titanite Slab",
|
|
|
|
drop=True,
|
|
|
|
hidden=True), # Guaranteed drop from killing all Winged Knights
|
|
|
|
DS3LocationData("GA: Outrider Knight Helm - 3F, behind illusory wall, miniboss drop",
|
|
|
|
"Outrider Knight Helm", miniboss=True,
|
|
|
|
hidden=True), # Behind illusory wall, Outrider Knight drop
|
|
|
|
DS3LocationData("GA: Outrider Knight Armor - 3F, behind illusory wall, miniboss drop",
|
|
|
|
"Outrider Knight Armor", miniboss=True,
|
|
|
|
hidden=True), # Behind illusory wall, Outrider Knight drop
|
|
|
|
DS3LocationData("GA: Outrider Knight Gauntlets - 3F, behind illusory wall, miniboss drop",
|
|
|
|
"Outrider Knight Gauntlets", miniboss=True,
|
|
|
|
hidden=True), # Behind illusory wall, Outrider Knight drop
|
|
|
|
DS3LocationData("GA: Outrider Knight Leggings - 3F, behind illusory wall, miniboss drop",
|
|
|
|
"Outrider Knight Leggings", miniboss=True,
|
|
|
|
hidden=True), # Behind illusory wall, Outrider Knight drop
|
|
|
|
DS3LocationData("GA: Crystal Scroll - 2F late, miniboss drop", "Crystal Scroll",
|
|
|
|
miniboss=True), # Crystal Sage drop
|
|
|
|
DS3LocationData("GA: Twinkling Titanite - dark room, lizard #1", "Twinkling Titanite",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("GA: Chaos Gem - dark room, lizard", "Chaos Gem", lizard=True),
|
|
|
|
DS3LocationData("GA: Twinkling Titanite - 1F, lizard by drop", "Twinkling Titanite",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("GA: Crystal Gem - 1F, lizard by drop", "Crystal Gem", lizard=True),
|
|
|
|
DS3LocationData("GA: Twinkling Titanite - 2F, lizard by entrance", "Twinkling Titanite x2",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("GA: Titanite Scale - 1F, drop from 2F late onto bookshelves, lizard",
|
|
|
|
"Titanite Scale x2", lizard=True, hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("GA: Twinkling Titanite - rooftops, lizard #1", "Twinkling Titanite",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("GA: Heavy Gem - rooftops, lizard", "Heavy Gem", lizard=True),
|
|
|
|
DS3LocationData("GA: Twinkling Titanite - rooftops, lizard #2", "Twinkling Titanite",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("GA: Sharp Gem - rooftops, lizard", "Sharp Gem", lizard=True),
|
|
|
|
DS3LocationData("GA: Twinkling Titanite - up stairs from 4F, lizard", "Twinkling Titanite",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("GA: Refined Gem - up stairs from 4F, lizard", "Refined Gem",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("GA: Twinkling Titanite - dark room, lizard #2", "Twinkling Titanite x2",
|
|
|
|
lizard=True),
|
|
|
|
|
|
|
|
# Shrine Handmaid after killing NPCs
|
|
|
|
DS3LocationData("FS: Faraam Helm - shop after killing GA NPC", "Faraam Helm",
|
|
|
|
hidden=True, hostile_npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Faraam Armor - shop after killing GA NPC", "Faraam Armor",
|
|
|
|
hidden=True, hostile_npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Faraam Gauntlets - shop after killing GA NPC", "Faraam Gauntlets",
|
|
|
|
hidden=True, hostile_npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Faraam Boots - shop after killing GA NPC", "Faraam Boots",
|
|
|
|
hidden=True, hostile_npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Black Hand Hat - shop after killing GA NPC", "Black Hand Hat",
|
|
|
|
hidden=True, hostile_npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Black Hand Armor - shop after killing GA NPC", "Black Hand Armor",
|
|
|
|
hidden=True, hostile_npc=True, shop=True),
|
|
|
|
|
|
|
|
# Shrine Handmaid after killing Lothric, Younger Prince
|
|
|
|
DS3LocationData("FS: Lorian's Helm - shop after killing GA boss", "Lorian's Helm",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Lorian's Armor - shop after killing GA boss", "Lorian's Armor",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Lorian's Gauntlets - shop after killing GA boss", "Lorian's Gauntlets",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Lorian's Leggings - shop after killing GA boss", "Lorian's Leggings",
|
|
|
|
boss=True, shop=True),
|
|
|
|
|
|
|
|
# Sirris quest completion + beat Twin Princes
|
|
|
|
DS3LocationData("FS: Sunless Talisman - Sirris, kill GA boss", "Sunless Talisman",
|
|
|
|
missable=True, npc=True),
|
|
|
|
DS3LocationData("FS: Sunless Veil - shop, Sirris quest, kill GA boss", "Sunless Veil",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Sunless Armor - shop, Sirris quest, kill GA boss", "Sunless Armor",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Sunless Gauntlets - shop, Sirris quest, kill GA boss",
|
|
|
|
"Sunless Gauntlets", missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Sunless Leggings - shop, Sirris quest, kill GA boss",
|
|
|
|
"Sunless Leggings", missable=True, npc=True, shop=True),
|
|
|
|
|
|
|
|
# Unbreakable Patches
|
|
|
|
DS3LocationData("FS: Hidden Blessing - Patches after searching GA", "Hidden Blessing",
|
|
|
|
missable=True, npc=True, shop=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
|
|
|
"Untended Graves": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
DS3LocationData("UG: Soul of Champion Gundyr", "Soul of Champion Gundyr", prominent=True,
|
|
|
|
boss=True),
|
|
|
|
DS3LocationData("UG: Priestess Ring - shop", "Priestess Ring", shop=True),
|
|
|
|
DS3LocationData("UG: Shriving Stone - swamp, by bonfire", "Shriving Stone"),
|
|
|
|
DS3LocationData("UG: Titanite Chunk - swamp, left path by fountain", "Titanite Chunk"),
|
|
|
|
DS3LocationData("UG: Soul of a Crestfallen Knight - swamp, center",
|
|
|
|
"Soul of a Crestfallen Knight"),
|
|
|
|
DS3LocationData("UG: Titanite Chunk - swamp, right path by fountain", "Titanite Chunk"),
|
|
|
|
DS3LocationData("UG: Ashen Estus Ring - swamp, path opposite bonfire", "Ashen Estus Ring"),
|
|
|
|
DS3LocationData("UG: Black Knight Glaive - boss arena", "Black Knight Glaive"),
|
|
|
|
DS3LocationData("UG: Hidden Blessing - cemetery, behind coffin", "Hidden Blessing"),
|
|
|
|
DS3LocationData("UG: Eyes of a Fire Keeper - shrine, Irina's room", "Eyes of a Fire Keeper",
|
|
|
|
hidden=True), # Illusory wall
|
|
|
|
DS3LocationData("UG: Soul of a Crestfallen Knight - environs, above shrine entrance",
|
|
|
|
"Soul of a Crestfallen Knight"),
|
|
|
|
DS3LocationData("UG: Blacksmith Hammer - shrine, Andre's room", "Blacksmith Hammer"),
|
|
|
|
DS3LocationData("UG: Chaos Blade - environs, left of shrine", "Chaos Blade"),
|
|
|
|
DS3LocationData("UG: Hornet Ring - environs, right of main path after killing FK boss",
|
|
|
|
"Hornet Ring", conditional=True),
|
|
|
|
DS3LocationData("UG: Coiled Sword Fragment - shrine, dead bonfire", "Coiled Sword Fragment",
|
|
|
|
boss=True),
|
|
|
|
DS3LocationData("UG: Life Ring+3 - shrine, behind big throne", "Life Ring+3", ngp=True),
|
|
|
|
DS3LocationData("UG: Ring of Steel Protection+1 - environs, behind bell tower",
|
|
|
|
"Ring of Steel Protection+1", ngp=True),
|
|
|
|
|
|
|
|
# Yuria shop, or Shrine Handmaiden with Hollow's Ashes
|
|
|
|
# This is here because this is where the ashes end up if you kill Yoel or Yuria
|
|
|
|
DS3LocationData("FS: Ring of Sacrifice - Yuria shop", "Ring of Sacrifice",
|
|
|
|
static='99,0:-1:40000,110000,70000107,70000116:', npc=True,
|
|
|
|
shop=True),
|
|
|
|
|
|
|
|
# Untended Graves Handmaid
|
|
|
|
# All shop items are missable because she can be killed, except Priestess ring because she
|
|
|
|
# drops it on death anyway.
|
|
|
|
DS3LocationData("UG: Ember - shop", "Ember", shop=True, missable=True),
|
|
|
|
# Untended Graves Handmaid after killing Abyss Watchers
|
|
|
|
DS3LocationData("UG: Wolf Knight Helm - shop after killing FK boss", "Wolf Knight Helm",
|
|
|
|
boss=True, shop=True, conditional=True,
|
|
|
|
missable=True),
|
|
|
|
DS3LocationData("UG: Wolf Knight Armor - shop after killing FK boss",
|
|
|
|
"Wolf Knight Armor", boss=True, shop=True, missable=True),
|
|
|
|
DS3LocationData("UG: Wolf Knight Gauntlets - shop after killing FK boss",
|
|
|
|
"Wolf Knight Gauntlets", boss=True, shop=True, missable=True),
|
|
|
|
DS3LocationData("UG: Wolf Knight Leggings - shop after killing FK boss",
|
|
|
|
"Wolf Knight Leggings", boss=True, shop=True, missable=True),
|
|
|
|
|
|
|
|
# Shrine Handmaid after killing Champion Gundyr
|
|
|
|
DS3LocationData("FS: Gundyr's Helm - shop after killing UG boss", "Gundyr's Helm",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Gundyr's Armor - shop after killing UG boss", "Gundyr's Armor",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Gundyr's Gauntlets - shop after killing UG boss", "Gundyr's Gauntlets",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Gundyr's Leggings - shop after killing UG boss", "Gundyr's Leggings",
|
|
|
|
boss=True, shop=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
|
|
|
"Archdragon Peak": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
DS3LocationData("AP: Dragon Head Stone - fort, boss drop", "Dragon Head Stone",
|
|
|
|
prominent=True, boss=True),
|
|
|
|
DS3LocationData("AP: Soul of the Nameless King", "Soul of the Nameless King",
|
|
|
|
prominent=True, boss=True),
|
|
|
|
DS3LocationData("AP: Dragon Tooth - belfry roof, NPC drop", "Dragon Tooth",
|
|
|
|
hostile_npc=True), # Havel Knight drop
|
|
|
|
DS3LocationData("AP: Havel's Greatshield - belfry roof, NPC drop", "Havel's Greatshield",
|
|
|
|
hostile_npc=True), # Havel Knight drop
|
|
|
|
DS3LocationData("AP: Drakeblood Greatsword - mausoleum, NPC drop", "Drakeblood Greatsword",
|
|
|
|
hostile_npc=True),
|
|
|
|
DS3LocationData("AP: Ricard's Rapier - belfry, NPC drop", "Ricard's Rapier",
|
|
|
|
hostile_npc=True),
|
|
|
|
DS3LocationData("AP: Lightning Clutch Ring - intro, left of boss door",
|
|
|
|
"Lightning Clutch Ring"),
|
|
|
|
DS3LocationData("AP: Stalk Dung Pie - fort overlook", "Stalk Dung Pie x6"),
|
|
|
|
DS3LocationData("AP: Titanite Chunk - fort, second room balcony", "Titanite Chunk"),
|
|
|
|
DS3LocationData("AP: Titanite Scale - mausoleum, downstairs balcony #1",
|
|
|
|
"Titanite Scale"),
|
|
|
|
DS3LocationData("AP: Soul of a Weary Warrior - intro, first cliff edge",
|
|
|
|
"Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("AP: Titanite Chunk - intro, left before archway", "Titanite Chunk"),
|
|
|
|
DS3LocationData("AP: Lightning Gem - intro, side rise", "Lightning Gem"),
|
|
|
|
DS3LocationData("AP: Homeward Bone - intro, path to bonfire", "Homeward Bone x2"),
|
|
|
|
DS3LocationData("AP: Soul of a Nameless Soldier - intro, right before archway",
|
|
|
|
"Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("AP: Titanite Chunk - intro, archway corner", "Titanite Chunk"),
|
|
|
|
DS3LocationData("AP: Ember - fort overlook #1", "Ember"),
|
|
|
|
DS3LocationData("AP: Large Soul of a Weary Warrior - fort, center",
|
|
|
|
"Large Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("AP: Large Soul of a Nameless Soldier - fort, by stairs to first room",
|
|
|
|
"Large Soul of a Nameless Soldier"),
|
|
|
|
DS3LocationData("AP: Lightning Urn - fort, left of first room entrance",
|
|
|
|
"Lightning Urn x4"),
|
|
|
|
DS3LocationData("AP: Lightning Bolt - rotunda", "Lightning Bolt x12"),
|
|
|
|
DS3LocationData("AP: Titanite Chunk - rotunda", "Titanite Chunk x2"),
|
|
|
|
# Not 100% sure about this location name, can't find this on any maps
|
|
|
|
DS3LocationData("AP: Dung Pie - fort, landing after second room", "Dung Pie x3"),
|
|
|
|
DS3LocationData("AP: Titanite Scale - mausoleum, downstairs balcony #2", "Titanite Scale"),
|
|
|
|
DS3LocationData("AP: Soul of a Weary Warrior - walkway, building window",
|
|
|
|
"Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("AP: Soul of a Crestfallen Knight - mausoleum, upstairs",
|
|
|
|
"Soul of a Crestfallen Knight"),
|
|
|
|
DS3LocationData("AP: Titanite Chunk - intro, behind rock", "Titanite Chunk"),
|
|
|
|
DS3LocationData("AP: Ember - fort overlook #2", "Ember"),
|
|
|
|
DS3LocationData("AP: Thunder Stoneplate Ring - walkway, up ladder",
|
|
|
|
"Thunder Stoneplate Ring"),
|
|
|
|
DS3LocationData("AP: Titanite Scale - mausoleum, upstairs balcony", "Titanite Scale"),
|
|
|
|
DS3LocationData("AP: Ember - belfry, below bell", "Ember"),
|
|
|
|
DS3LocationData("AP: Ancient Dragon Greatshield - intro, on archway",
|
|
|
|
"Ancient Dragon Greatshield"),
|
|
|
|
DS3LocationData("AP: Large Soul of a Crestfallen Knight - summit, by fountain",
|
|
|
|
"Large Soul of a Crestfallen Knight"),
|
|
|
|
DS3LocationData("AP: Dragon Chaser's Ashes - summit, side path", "Dragon Chaser's Ashes",
|
|
|
|
progression=True),
|
|
|
|
DS3LocationData("AP: Ember - intro, by bonfire", "Ember"),
|
|
|
|
DS3LocationData("AP: Dragonslayer Spear - gate after mausoleum", "Dragonslayer Spear"),
|
|
|
|
DS3LocationData("AP: Dragonslayer Helm - plaza", "Dragonslayer Helm"),
|
|
|
|
DS3LocationData("AP: Dragonslayer Armor - plaza", "Dragonslayer Armor"),
|
|
|
|
DS3LocationData("AP: Dragonslayer Gauntlets - plaza", "Dragonslayer Gauntlets"),
|
|
|
|
DS3LocationData("AP: Dragonslayer Leggings - plaza", "Dragonslayer Leggings"),
|
|
|
|
DS3LocationData("AP: Twinkling Titanite - fort, end of rafters", "Twinkling Titanite x2"),
|
|
|
|
DS3LocationData("AP: Twinkling Titanite - fort, down second room balcony ladder",
|
|
|
|
"Twinkling Titanite x2"),
|
|
|
|
DS3LocationData("AP: Titanite Slab - belfry roof", "Titanite Slab"),
|
|
|
|
DS3LocationData("AP: Great Magic Barrier - drop off belfry roof", "Great Magic Barrier",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("AP: Titanite Slab - plaza", "Titanite Slab"),
|
|
|
|
DS3LocationData("AP: Ring of Steel Protection - fort overlook, beside stairs",
|
|
|
|
"Ring of Steel Protection"),
|
|
|
|
DS3LocationData("AP: Havel's Ring+1 - summit, after building", "Havel's Ring+1",
|
|
|
|
ngp=True),
|
|
|
|
DS3LocationData("AP: Covetous Gold Serpent Ring+2 - plaza", "Covetous Gold Serpent Ring+2",
|
|
|
|
ngp=True),
|
|
|
|
DS3LocationData("AP: Titanite Scale - walkway building", "Titanite Scale x3"),
|
|
|
|
DS3LocationData("AP: Twinkling Titanite - belfry, by ladder to roof",
|
|
|
|
"Twinkling Titanite x3"),
|
|
|
|
DS3LocationData("AP: Twinkling Dragon Torso Stone - summit, gesture at altar",
|
|
|
|
"Twinkling Dragon Torso Stone", hidden=True), # Requires gesture
|
|
|
|
DS3LocationData("AP: Calamity Ring - mausoleum, gesture at altar", "Calamity Ring",
|
|
|
|
hidden=True), # Requires gesture
|
|
|
|
DS3LocationData("AP: Twinkling Titanite - walkway building, lizard",
|
|
|
|
"Twinkling Titanite x3", lizard=True),
|
|
|
|
DS3LocationData("AP: Titanite Chunk - walkway, miniboss drop", "Titanite Chunk x6",
|
|
|
|
miniboss=True), # Wyvern miniboss drop
|
|
|
|
DS3LocationData("AP: Titanite Scale - walkway, miniboss drop", "Titanite Scale x3",
|
|
|
|
miniboss=True), # Wyvern miniboss drop
|
|
|
|
DS3LocationData("AP: Twinkling Titanite - walkway, miniboss drop", "Twinkling Titanite x3",
|
|
|
|
miniboss=True), # Wyvern miniboss drop
|
|
|
|
DS3LocationData("FS: Hawkwood's Swordgrass - Andre after gesture in AP summit",
|
|
|
|
"Hawkwood's Swordgrass", conditional=True, hidden=True),
|
|
|
|
|
|
|
|
# Shrine Handmaid after killing Nameless King
|
|
|
|
DS3LocationData("FS: Golden Crown - shop after killing AP boss", "Golden Crown",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Dragonscale Armor - shop after killing AP boss", "Dragonscale Armor",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Golden Bracelets - shop after killing AP boss", "Golden Bracelets",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Dragonscale Waistcloth - shop after killing AP boss",
|
|
|
|
"Dragonscale Waistcloth", boss=True, shop=True),
|
|
|
|
DS3LocationData("FK: Twinkling Dragon Head Stone - Hawkwood drop",
|
|
|
|
"Twinkling Dragon Head Stone", missable=True,
|
|
|
|
npc=True), # Hawkwood (quest)
|
|
|
|
],
|
|
|
|
"Kiln of the First Flame": [
|
|
|
|
DS3LocationData("KFF: Soul of the Lords", "Soul of the Lords", boss=True),
|
|
|
|
|
|
|
|
# Shrine Handmaid after placing all Cinders of a Lord
|
|
|
|
DS3LocationData("FS: Titanite Slab - shop after placing all Cinders", "Titanite Slab",
|
|
|
|
static='99,0:-1:9210,110000:', hidden=True),
|
|
|
|
DS3LocationData("FS: Firelink Helm - shop after placing all Cinders", "Firelink Helm",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Firelink Armor - shop after placing all Cinders", "Firelink Armor",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Firelink Gauntlets - shop after placing all Cinders",
|
|
|
|
"Firelink Gauntlets", boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Firelink Leggings - shop after placing all Cinders",
|
|
|
|
"Firelink Leggings", boss=True, shop=True),
|
|
|
|
|
|
|
|
# Yuria (quest, after Soul of Cinder)
|
2024-12-01 04:00:06 +00:00
|
|
|
DS3LocationData("FS: Billed Mask - shop after killing Yuria", "Billed Mask",
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
missable=True, npc=True),
|
2024-12-01 04:00:06 +00:00
|
|
|
DS3LocationData("FS: Black Dress - shop after killing Yuria", "Black Dress",
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
missable=True, npc=True),
|
2024-12-01 04:00:06 +00:00
|
|
|
DS3LocationData("FS: Black Gauntlets - shop after killing Yuria", "Black Gauntlets",
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
missable=True, npc=True),
|
2024-12-01 04:00:06 +00:00
|
|
|
DS3LocationData("FS: Black Leggings - shop after killing Yuria", "Black Leggings",
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
missable=True, npc=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
|
|
|
|
|
|
|
# DLC
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
"Painted World of Ariandel (Before Contraption)": [
|
|
|
|
DS3LocationData("PW1: Valorheart - boss drop", "Valorheart", prominent=True, boss=True),
|
|
|
|
DS3LocationData("PW1: Contraption Key - library, NPC drop", "Contraption Key",
|
|
|
|
prominent=True, progression=True,
|
|
|
|
hostile_npc=True), # Sir Vilhelm drop
|
|
|
|
DS3LocationData("PW1: Onyx Blade - library, NPC drop", "Onyx Blade",
|
|
|
|
hostile_npc=True), # Sir Vilhelm drop
|
|
|
|
DS3LocationData("PW1: Chillbite Ring - Friede", "Chillbite Ring",
|
|
|
|
npc=True), # Friede conversation
|
|
|
|
DS3LocationData("PW1: Rime-blue Moss Clump - snowfield upper, starting cave",
|
|
|
|
"Rime-blue Moss Clump x2"),
|
|
|
|
DS3LocationData("PW1: Poison Gem - snowfield upper, forward from bonfire", "Poison Gem"),
|
|
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - snowfield lower, path back up",
|
|
|
|
"Large Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("PW1: Follower Javelin - snowfield lower, path back up", "Follower Javelin"),
|
|
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - snowfield lower, path to village",
|
|
|
|
"Large Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("PW1: Homeward Bone - snowfield village, outcropping", "Homeward Bone x6"),
|
|
|
|
DS3LocationData("PW1: Blessed Gem - snowfield, behind tower", "Blessed Gem",
|
|
|
|
hidden=True), # Hidden behind a tower
|
|
|
|
DS3LocationData("PW1: Captain's Ashes - snowfield tower, 6F", "Captain's Ashes",
|
|
|
|
progression=True),
|
|
|
|
DS3LocationData("PW1: Black Firebomb - snowfield lower, path to bonfire",
|
|
|
|
"Black Firebomb x2"),
|
|
|
|
DS3LocationData("PW1: Shriving Stone - below bridge near", "Shriving Stone"),
|
|
|
|
DS3LocationData("PW1: Millwood Greatarrow - snowfield village, loop back to lower",
|
|
|
|
"Millwood Greatarrow x5"),
|
|
|
|
DS3LocationData("PW1: Millwood Greatbow - snowfield village, loop back to lower",
|
|
|
|
"Millwood Greatbow"),
|
|
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - snowfield upper",
|
|
|
|
"Large Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("PW1: Rusted Coin - snowfield lower, straight from fall", "Rusted Coin"),
|
|
|
|
DS3LocationData("PW1: Large Titanite Shard - snowfield lower, left from fall",
|
|
|
|
"Large Titanite Shard"),
|
|
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - settlement courtyard, cliff",
|
|
|
|
"Large Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("PW1: Crow Quills - settlement loop, jump into courtyard", "Crow Quills",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("PW1: Simple Gem - settlement, lowest level, behind gate", "Simple Gem"),
|
|
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - settlement, by ladder to bonfire",
|
|
|
|
"Large Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("PW1: Slave Knight Hood - settlement roofs, drop by ladder",
|
|
|
|
"Slave Knight Hood"),
|
|
|
|
DS3LocationData("PW1: Slave Knight Armor - settlement roofs, drop by ladder",
|
|
|
|
"Slave Knight Armor"),
|
|
|
|
DS3LocationData("PW1: Slave Knight Gauntlets - settlement roofs, drop by ladder",
|
|
|
|
"Slave Knight Gauntlets"),
|
|
|
|
DS3LocationData("PW1: Slave Knight Leggings - settlement roofs, drop by ladder",
|
|
|
|
"Slave Knight Leggings"),
|
|
|
|
DS3LocationData("PW1: Ember - settlement main, left building after bridge", "Ember"),
|
|
|
|
DS3LocationData("PW1: Dark Gem - settlement back, egg building", "Dark Gem"),
|
|
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - settlement roofs, balcony",
|
|
|
|
"Large Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - settlement loop, by bonfire",
|
|
|
|
"Large Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("PW1: Rusted Gold Coin - settlement roofs, roof near second ladder",
|
|
|
|
"Rusted Gold Coin x3"),
|
|
|
|
DS3LocationData("PW1: Soul of a Crestfallen Knight - settlement hall, rafters",
|
|
|
|
"Soul of a Crestfallen Knight"),
|
|
|
|
DS3LocationData("PW1: Way of White Corona - settlement hall, by altar",
|
|
|
|
"Way of White Corona"),
|
|
|
|
DS3LocationData("PW1: Rusted Coin - right of library", "Rusted Coin x2"),
|
|
|
|
DS3LocationData("PW1: Young White Branch - right of library", "Young White Branch"),
|
|
|
|
DS3LocationData("PW1: Budding Green Blossom - settlement courtyard, ledge",
|
|
|
|
"Budding Green Blossom x3"),
|
|
|
|
DS3LocationData("PW1: Crow Talons - settlement roofs, near bonfire", "Crow Talons"),
|
|
|
|
DS3LocationData("PW1: Hollow Gem - beside chapel", "Hollow Gem"),
|
|
|
|
DS3LocationData("PW1: Rime-blue Moss Clump - below bridge far", "Rime-blue Moss Clump x4"),
|
|
|
|
DS3LocationData("PW1: Follower Sabre - roots above depths", "Follower Sabre"),
|
|
|
|
DS3LocationData("PW1: Ember - roots above depths", "Ember"),
|
|
|
|
DS3LocationData("PW1: Snap Freeze - depths, far end, mob drop", "Snap Freeze", drop=True,
|
|
|
|
hidden=True), # Guaranteed drop from normal-looking Tree Woman
|
|
|
|
DS3LocationData("PW1: Rime-blue Moss Clump - snowfield upper, overhang",
|
|
|
|
"Rime-blue Moss Clump"),
|
|
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - snowfield lower, by cliff",
|
|
|
|
"Large Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("PW1: Ember - settlement, building near bonfire", "Ember"),
|
|
|
|
DS3LocationData("PW1: Frozen Weapon - snowfield lower, egg zone", "Frozen Weapon"),
|
|
|
|
DS3LocationData("PW1: Titanite Slab - depths, up secret ladder", "Titanite Slab",
|
|
|
|
static='11,0:54500640::',
|
|
|
|
hidden=True), # Must kill normal-looking Tree Woman
|
|
|
|
DS3LocationData("PW1: Homeward Bone - depths, up hill", "Homeward Bone x2"),
|
|
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - below snowfield village overhang",
|
|
|
|
"Large Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("PW1: Large Soul of a Weary Warrior - settlement hall roof",
|
|
|
|
"Large Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - settlement back",
|
|
|
|
"Large Soul of an Unknown Traveler"),
|
|
|
|
DS3LocationData("PW1: Heavy Gem - snowfield village", "Heavy Gem"),
|
|
|
|
DS3LocationData("PW1: Large Soul of a Weary Warrior - snowfield tower, 6F",
|
|
|
|
"Large Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("PW1: Millwood Battle Axe - snowfield tower, 5F", "Millwood Battle Axe"),
|
|
|
|
DS3LocationData("PW1: Ethereal Oak Shield - snowfield tower, 3F", "Ethereal Oak Shield"),
|
|
|
|
DS3LocationData("PW1: Soul of a Weary Warrior - snowfield tower, 1F",
|
|
|
|
"Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("PW1: Twinkling Titanite - snowfield tower, 3F lizard",
|
|
|
|
"Twinkling Titanite", lizard=True),
|
|
|
|
DS3LocationData("PW1: Large Titanite Shard - lizard under bridge near",
|
|
|
|
"Large Titanite Shard", lizard=True),
|
|
|
|
DS3LocationData("PW1: Twinkling Titanite - roots, lizard", "Twinkling Titanite",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("PW1: Twinkling Titanite - settlement roofs, lizard before hall",
|
|
|
|
"Twinkling Titanite", lizard=True),
|
|
|
|
DS3LocationData("PW1: Large Titanite Shard - settlement loop, lizard",
|
|
|
|
"Large Titanite Shard x2", lizard=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
"Painted World of Ariandel (After Contraption)": [
|
|
|
|
DS3LocationData("PW2: Soul of Sister Friede", "Soul of Sister Friede", prominent=True,
|
|
|
|
boss=True),
|
|
|
|
DS3LocationData("PW2: Titanite Slab - boss drop", "Titanite Slab",
|
|
|
|
static='11,0:50004700::',
|
|
|
|
boss=True), # One-time drop after Friede Phase 2
|
|
|
|
DS3LocationData("PW2: Floating Chaos - NPC drop", "Floating Chaos", hostile_npc=True,
|
|
|
|
hidden=True), # Livid Pyromancer Dunnel drop (requires ember)
|
|
|
|
DS3LocationData("PW2: Prism Stone - pass, tree by beginning", "Prism Stone x10"),
|
|
|
|
DS3LocationData("PW2: Titanite Chunk - pass, cliff overlooking bonfire", "Titanite Chunk"),
|
|
|
|
DS3LocationData("PW2: Titanite Chunk - pass, by kickable tree", "Titanite Chunk"),
|
|
|
|
DS3LocationData("PW2: Follower Shield - pass, far cliffside", "Follower Shield"),
|
|
|
|
DS3LocationData("PW2: Large Titanite Shard - pass, just before B1",
|
|
|
|
"Large Titanite Shard x2"),
|
|
|
|
DS3LocationData("PW2: Quakestone Hammer - pass, side path near B1", "Quakestone Hammer"),
|
|
|
|
DS3LocationData("PW2: Ember - pass, central alcove", "Ember"),
|
|
|
|
DS3LocationData("PW2: Large Titanite Shard - pass, far side path",
|
|
|
|
"Large Titanite Shard x2"),
|
|
|
|
DS3LocationData("PW2: Soul of a Crestfallen Knight - pit edge #1",
|
|
|
|
"Soul of a Crestfallen Knight"),
|
|
|
|
DS3LocationData("PW2: Soul of a Crestfallen Knight - pit edge #2",
|
|
|
|
"Soul of a Crestfallen Knight"),
|
|
|
|
DS3LocationData("PW2: Large Soul of a Crestfallen Knight - pit, by tree",
|
|
|
|
"Large Soul of a Crestfallen Knight"),
|
|
|
|
DS3LocationData("PW2: Earth Seeker - pit cave", "Earth Seeker"),
|
|
|
|
DS3LocationData("PW2: Follower Torch - pass, far side path", "Follower Torch"),
|
|
|
|
DS3LocationData("PW2: Dung Pie - B1", "Dung Pie x2"),
|
|
|
|
DS3LocationData("PW2: Vilhelm's Helm", "Vilhelm's Helm"),
|
|
|
|
DS3LocationData("PW2: Vilhelm's Armor - B2, along wall", "Vilhelm's Armor"),
|
|
|
|
DS3LocationData("PW2: Vilhelm's Gauntlets - B2, along wall", "Vilhelm's Gauntlets"),
|
|
|
|
DS3LocationData("PW2: Vilhelm's Leggings - B2, along wall", "Vilhelm's Leggings"),
|
|
|
|
DS3LocationData("PW2: Blood Gem - B2, center", "Blood Gem"),
|
|
|
|
DS3LocationData("PW2: Pyromancer's Parting Flame - rotunda",
|
|
|
|
"Pyromancer's Parting Flame", hidden=True), # Behind illusory wall
|
|
|
|
DS3LocationData("PW2: Homeward Bone - rotunda", "Homeward Bone x2",
|
|
|
|
hidden=True), # Behind illusory wall
|
|
|
|
DS3LocationData("PW2: Twinkling Titanite - B3, lizard #1", "Twinkling Titanite",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("PW2: Twinkling Titanite - B3, lizard #2", "Twinkling Titanite",
|
|
|
|
lizard=True),
|
|
|
|
|
|
|
|
# Corvian Settler after killing Friede
|
|
|
|
DS3LocationData("PW1: Titanite Slab - Corvian", "Titanite Slab", npc=True),
|
|
|
|
|
|
|
|
# Shrine Handmaid after killing Sister Friede
|
|
|
|
DS3LocationData("FS: Ordained Hood - shop after killing PW2 boss", "Ordained Hood",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Ordained Dress - shop after killing PW2 boss", "Ordained Dress",
|
|
|
|
boss=True, shop=True),
|
|
|
|
DS3LocationData("FS: Ordained Trousers - shop after killing PW2 boss", "Ordained Trousers",
|
|
|
|
boss=True, shop=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
|
|
|
"Dreg Heap": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
DS3LocationData("DH: Soul of the Demon Prince", "Soul of the Demon Prince",
|
|
|
|
prominent=True, boss=True),
|
|
|
|
DS3LocationData("DH: Siegbräu - Lapp", "Siegbräu", missable=True, drop=True,
|
|
|
|
npc=True), # Lapp (quest or kill)
|
|
|
|
DS3LocationData("DH: Flame Fan - swamp upper, NPC drop", "Flame Fan",
|
|
|
|
hostile_npc=True), # Desert Pyromancer Zoey drop
|
|
|
|
DS3LocationData("DH: Ember - castle, behind spire", "Ember"),
|
|
|
|
DS3LocationData("DH: Soul of a Weary Warrior - castle overhang", "Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("DH: Titanite Chunk - castle, up stairs", "Titanite Chunk"),
|
|
|
|
DS3LocationData("DH: Aquamarine Dagger - castle, up stairs", "Aquamarine Dagger"),
|
|
|
|
DS3LocationData("DH: Twinkling Titanite - library, chandelier", "Twinkling Titanite"),
|
|
|
|
DS3LocationData("DH: Murky Hand Scythe - library, behind bookshelves", "Murky Hand Scythe"),
|
|
|
|
DS3LocationData("DH: Divine Blessing - library, after drop", "Divine Blessing"),
|
|
|
|
DS3LocationData("DH: Ring of Steel Protection+3 - ledge before church",
|
|
|
|
"Ring of Steel Protection+3"),
|
|
|
|
DS3LocationData("DH: Soul of a Crestfallen Knight - church, altar",
|
|
|
|
"Soul of a Crestfallen Knight"),
|
|
|
|
DS3LocationData("DH: Rusted Coin - behind fountain after church", "Rusted Coin x2"),
|
|
|
|
DS3LocationData("DH: Titanite Chunk - pantry, first room", "Titanite Chunk"),
|
|
|
|
DS3LocationData("DH: Murky Longstaff - pantry, last room", "Murky Longstaff"),
|
|
|
|
DS3LocationData("DH: Ember - pantry, behind crates just before upstairs", "Ember",
|
|
|
|
hidden=True), # Behind illusory wall
|
|
|
|
DS3LocationData("DH: Great Soul Dregs - pantry upstairs", "Great Soul Dregs",
|
|
|
|
hidden=True), # Behind illusory wall
|
|
|
|
DS3LocationData("DH: Covetous Silver Serpent Ring+3 - pantry upstairs, drop down",
|
|
|
|
"Covetous Silver Serpent Ring+3", hidden=True), # Behind illusory wall
|
|
|
|
DS3LocationData("DH: Titanite Chunk - path from church, by pillar", "Titanite Chunk"),
|
|
|
|
DS3LocationData("DH: Homeward Bone - end of path from church", "Homeward Bone x3"),
|
|
|
|
DS3LocationData("DH: Lightning Urn - wall outside church", "Lightning Urn x4"),
|
|
|
|
DS3LocationData("DH: Projected Heal - parapets balcony", "Projected Heal"),
|
|
|
|
DS3LocationData("DH: Large Soul of a Weary Warrior - parapets, hall",
|
|
|
|
"Large Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("DH: Lothric War Banner - parapets, end of hall", "Lothric War Banner"),
|
|
|
|
DS3LocationData("DH: Titanite Scale - library, back of room", "Titanite Scale"),
|
|
|
|
DS3LocationData("DH: Black Firebomb - ruins, up windmill from bonfire", "Black Firebomb x4"),
|
|
|
|
DS3LocationData("DH: Titanite Chunk - ruins, path from bonfire", "Titanite Chunk"),
|
|
|
|
DS3LocationData("DH: Twinkling Titanite - ruins, root near bonfire", "Twinkling Titanite"),
|
|
|
|
DS3LocationData("DH: Desert Pyromancer Garb - ruins, by shack near cliff",
|
|
|
|
"Desert Pyromancer Garb"),
|
|
|
|
DS3LocationData("DH: Titanite Chunk - ruins, by far shack", "Titanite Chunk x2"),
|
|
|
|
DS3LocationData("DH: Giant Door Shield - ruins, path below far shack", "Giant Door Shield"),
|
|
|
|
DS3LocationData("DH: Ember - ruins, alcove before swamp", "Ember"),
|
|
|
|
DS3LocationData("DH: Desert Pyromancer Gloves - swamp, far right",
|
|
|
|
"Desert Pyromancer Gloves"),
|
|
|
|
DS3LocationData("DH: Desert Pyromancer Skirt - swamp right, by roots",
|
|
|
|
"Desert Pyromancer Skirt"),
|
|
|
|
DS3LocationData("DH: Titanite Scale - swamp upper, drop and jump into tower",
|
|
|
|
"Titanite Scale"),
|
|
|
|
DS3LocationData("DH: Purple Moss Clump - swamp shack", "Purple Moss Clump x4"),
|
|
|
|
DS3LocationData("DH: Ring of Favor+3 - swamp right, up root", "Ring of Favor+3"),
|
|
|
|
DS3LocationData("DH: Titanite Chunk - swamp right, drop partway up root", "Titanite Chunk"),
|
|
|
|
DS3LocationData("DH: Large Soul of a Weary Warrior - swamp, under overhang",
|
|
|
|
"Large Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("DH: Titanite Slab - swamp, path under overhang", "Titanite Slab"),
|
|
|
|
DS3LocationData("DH: Titanite Chunk - swamp, along buildings", "Titanite Chunk"),
|
|
|
|
DS3LocationData("DH: Loincloth - swamp, left edge", "Loincloth"),
|
|
|
|
DS3LocationData("DH: Titanite Chunk - swamp, path to upper", "Titanite Chunk"),
|
|
|
|
DS3LocationData("DH: Large Soul of a Weary Warrior - swamp center",
|
|
|
|
"Large Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("DH: Harald Curved Greatsword - swamp left, under root",
|
|
|
|
"Harald Curved Greatsword"),
|
|
|
|
DS3LocationData("DH: Homeward Bone - swamp left, on root", "Homeward Bone"),
|
|
|
|
DS3LocationData("DH: Prism Stone - swamp upper, tunnel start", "Prism Stone x6"),
|
|
|
|
DS3LocationData("DH: Desert Pyromancer Hood - swamp upper, tunnel end",
|
|
|
|
"Desert Pyromancer Hood"),
|
|
|
|
DS3LocationData("DH: Twinkling Titanite - swamp upper, drop onto root",
|
|
|
|
"Twinkling Titanite", hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("DH: Divine Blessing - swamp upper, building roof", "Divine Blessing"),
|
|
|
|
DS3LocationData("DH: Ember - ruins, alcove on cliff", "Ember", hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("DH: Small Envoy Banner - boss drop", "Small Envoy Banner",
|
|
|
|
progression=True, boss=True),
|
|
|
|
DS3LocationData("DH: Twinkling Titanite - ruins, alcove on cliff, mob drop",
|
|
|
|
"Twinkling Titanite x2", drop=True,
|
|
|
|
hidden=True), # Hidden fall, also guaranteed drop from killing normal-looking pilgrim
|
|
|
|
DS3LocationData("DH: Twinkling Titanite - swamp upper, mob drop on roof",
|
|
|
|
"Twinkling Titanite x2", drop=True,
|
|
|
|
hidden=True), # Hidden fall, also guaranteed drop from killing normal-looking pilgrim
|
|
|
|
DS3LocationData("DH: Twinkling Titanite - path after church, mob drop",
|
|
|
|
"Twinkling Titanite x2", drop=True,
|
|
|
|
hidden=True), # Guaranteed drop from killing normal-looking pilgrim
|
|
|
|
|
|
|
|
# Stone-humped Hag's shop
|
|
|
|
DS3LocationData("DH: Splitleaf Greatsword - shop", "Splitleaf Greatsword", shop=True),
|
|
|
|
DS3LocationData("DH: Divine Blessing - shop", "Divine Blessing", shop=True),
|
|
|
|
DS3LocationData("DH: Hidden Blessing - shop", "Hidden Blessing", shop=True),
|
|
|
|
DS3LocationData("DH: Rusted Gold Coin - shop", "Rusted Gold Coin", shop=True),
|
|
|
|
DS3LocationData("DH: Ember - shop", "Ember", shop=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
|
|
|
"Ringed City": [
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
DS3LocationData("RC: Titanite Slab - mid boss drop", "Titanite Slab",
|
|
|
|
prominent=True, boss=True), # Halflight drop, only once
|
|
|
|
DS3LocationData("RC: Filianore's Spear Ornament - mid boss drop",
|
|
|
|
"Filianore's Spear Ornament"),
|
|
|
|
DS3LocationData("RC: Soul of Darkeater Midir", "Soul of Darkeater Midir", prominent=True,
|
|
|
|
boss=True),
|
|
|
|
DS3LocationData("RC: Sacred Chime of Filianore - ashes, NPC drop",
|
|
|
|
"Sacred Chime of Filianore",
|
|
|
|
hostile_npc=True), # Shira (kill or quest)
|
|
|
|
DS3LocationData("RC: Titanite Slab - ashes, NPC drop", "Titanite Slab",
|
|
|
|
hostile_npc=True), # Shira (kill or quest)
|
|
|
|
DS3LocationData("RC: Crucifix of the Mad King - ashes, NPC drop",
|
|
|
|
"Crucifix of the Mad King", hostile_npc=True), # Shira drop
|
|
|
|
DS3LocationData("RC: Ledo's Great Hammer - streets high, opposite building, NPC drop",
|
|
|
|
"Ledo's Great Hammer", hostile_npc=True,
|
|
|
|
missable=True), # Silver Knight Ledo drop, doesn't invade once Halflight
|
|
|
|
# is defeated
|
|
|
|
DS3LocationData("RC: Wolf Ring+3 - street gardens, NPC drop", "Wolf Ring+3",
|
|
|
|
hostile_npc=True,
|
|
|
|
missable=True), # Alva drop, doesn't invade once Halflight is defeated
|
|
|
|
DS3LocationData("RC: Blindfold Mask - grave, NPC drop", "Blindfold Mask",
|
|
|
|
hostile_npc=True), # Moaning Knight drop
|
|
|
|
DS3LocationData("RC: Titanite Scale - wall top, behind spawn", "Titanite Scale"), # wrong
|
|
|
|
DS3LocationData("RC: Ruin Helm - wall top, under stairs to bonfire", "Ruin Helm"),
|
|
|
|
DS3LocationData("RC: Ruin Armor - wall top, under stairs to bonfire", "Ruin Armor"),
|
|
|
|
DS3LocationData("RC: Ruin Gauntlets - wall top, under stairs to bonfire", "Ruin Gauntlets"),
|
|
|
|
DS3LocationData("RC: Ruin Leggings - wall top, under stairs to bonfire", "Ruin Leggings"),
|
|
|
|
DS3LocationData("RC: Budding Green Blossom - wall top, in flower cluster",
|
|
|
|
"Budding Green Blossom x2"),
|
|
|
|
DS3LocationData("RC: Titanite Chunk - wall top, among graves", "Titanite Chunk x2"),
|
|
|
|
DS3LocationData("RC: Ember - wall top, by statue", "Ember"),
|
|
|
|
DS3LocationData("RC: Budding Green Blossom - wall top, flowers by stairs",
|
|
|
|
"Budding Green Blossom x2"),
|
|
|
|
DS3LocationData("RC: Hidden Blessing - wall top, tomb under platform", "Hidden Blessing",
|
|
|
|
hidden=True), # hidden fall
|
|
|
|
DS3LocationData("RC: Soul of a Crestfallen Knight - wall top, under drop",
|
|
|
|
"Soul of a Crestfallen Knight", hidden=True), # hidden fall
|
|
|
|
DS3LocationData("RC: Large Soul of a Weary Warrior - wall top, right of small tomb",
|
|
|
|
"Large Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("RC: Ember - wall upper, balcony", "Ember"),
|
|
|
|
DS3LocationData("RC: Purging Stone - wall top, by door to upper", "Purging Stone x2"),
|
|
|
|
DS3LocationData("RC: Hollow Gem - wall upper, path to tower", "Hollow Gem"),
|
|
|
|
DS3LocationData("RC: Titanite Chunk - wall upper, courtyard alcove", "Titanite Chunk"),
|
|
|
|
DS3LocationData("RC: Twinkling Titanite - wall tower, jump from chandelier",
|
|
|
|
"Twinkling Titanite", hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("RC: Shriving Stone - wall tower, bottom floor center", "Shriving Stone"),
|
|
|
|
DS3LocationData("RC: Shira's Crown - Shira's room after killing ashes NPC", "Shira's Crown",
|
|
|
|
hidden=True), # Have to return to a cleared area
|
|
|
|
DS3LocationData("RC: Shira's Armor - Shira's room after killing ashes NPC", "Shira's Armor",
|
|
|
|
hidden=True), # Have to return to a cleared area
|
|
|
|
DS3LocationData("RC: Shira's Gloves - Shira's room after killing ashes NPC",
|
|
|
|
"Shira's Gloves", hidden=True), # Have to return to a cleared area
|
|
|
|
DS3LocationData("RC: Shira's Trousers - Shira's room after killing ashes NPC",
|
|
|
|
"Shira's Trousers", hidden=True), # Have to return to a cleared area
|
|
|
|
DS3LocationData("RC: Mossfruit - streets near left, path to garden", "Mossfruit x2"),
|
|
|
|
DS3LocationData("RC: Large Soul of a Crestfallen Knight - streets, far stairs",
|
|
|
|
"Large Soul of a Crestfallen Knight"),
|
|
|
|
DS3LocationData("RC: Ringed Knight Spear - streets, down far right hall",
|
|
|
|
"Ringed Knight Spear"),
|
|
|
|
DS3LocationData("RC: Black Witch Hat - streets garden", "Black Witch Hat",
|
|
|
|
hostile_npc=True), # Alva
|
|
|
|
DS3LocationData("RC: Black Witch Garb - streets garden", "Black Witch Garb",
|
|
|
|
hostile_npc=True), # Alva
|
|
|
|
DS3LocationData("RC: Black Witch Wrappings - streets garden", "Black Witch Wrappings",
|
|
|
|
hostile_npc=True), # Alva
|
|
|
|
DS3LocationData("RC: Black Witch Trousers - streets garden", "Black Witch Trousers",
|
|
|
|
hostile_npc=True), # Alva
|
|
|
|
DS3LocationData("RC: Dragonhead Shield - streets monument, across bridge",
|
|
|
|
"Dragonhead Shield", hidden=True), # "Show Your Humanity" puzzle
|
|
|
|
DS3LocationData("RC: Titanite Chunk - streets, near left drop", "Titanite Chunk",
|
|
|
|
hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("RC: Mossfruit - streets, far left alcove", "Mossfruit x2"),
|
|
|
|
DS3LocationData("RC: Large Soul of a Crestfallen Knight - streets monument, across bridge",
|
|
|
|
"Large Soul of a Crestfallen Knight",
|
|
|
|
hidden=True), # "Show Your Humanity" puzzle
|
|
|
|
DS3LocationData("RC: Covetous Gold Serpent Ring+3 - streets, by Lapp",
|
|
|
|
"Covetous Gold Serpent Ring+3"),
|
|
|
|
DS3LocationData("RC: Titanite Chunk - streets high, building opposite", "Titanite Chunk x2"),
|
|
|
|
DS3LocationData("RC: Dark Gem - swamp near, by stairs", "Dark Gem"),
|
|
|
|
DS3LocationData("RC: Prism Stone - swamp near, railing by bonfire", "Prism Stone x4"),
|
|
|
|
DS3LocationData("RC: Ringed Knight Straight Sword - swamp near, tower on peninsula",
|
|
|
|
"Ringed Knight Straight Sword"),
|
|
|
|
DS3LocationData("RC: Havel's Ring+3 - streets high, drop from building opposite",
|
|
|
|
"Havel's Ring+3", hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("RC: Titanite Chunk - swamp near left, by spire top", "Titanite Chunk"),
|
|
|
|
DS3LocationData("RC: Twinkling Titanite - swamp near left", "Twinkling Titanite"),
|
|
|
|
DS3LocationData("RC: Soul of a Weary Warrior - swamp center", "Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("RC: Preacher's Right Arm - swamp near right, by tower",
|
|
|
|
"Preacher's Right Arm"),
|
|
|
|
DS3LocationData("RC: Rubbish - swamp far, by crystal", "Rubbish"),
|
|
|
|
DS3LocationData("RC: Titanite Chunk - swamp near right, behind rock",
|
|
|
|
"Titanite Chunk"),
|
|
|
|
DS3LocationData("RC: Black Witch Veil - swamp near right, by sunken church",
|
|
|
|
"Black Witch Veil"),
|
|
|
|
DS3LocationData("RC: Twinkling Titanite - swamp near right, on sunken church",
|
|
|
|
"Twinkling Titanite"),
|
|
|
|
DS3LocationData("RC: Soul of a Crestfallen Knight - swamp near left, nook",
|
|
|
|
"Soul of a Crestfallen Knight"),
|
|
|
|
DS3LocationData("RC: White Preacher Head - swamp near, nook right of stairs",
|
|
|
|
"White Preacher Head"),
|
|
|
|
DS3LocationData("RC: Titanite Scale - swamp far, by miniboss", "Titanite Scale"),
|
|
|
|
DS3LocationData("RC: Dragonhead Greatshield - lower cliff, under bridge",
|
|
|
|
"Dragonhead Greatshield"),
|
|
|
|
DS3LocationData("RC: Titanite Scale - lower cliff, path under bridge", "Titanite Scale x2"),
|
|
|
|
DS3LocationData("RC: Rubbish - lower cliff, middle", "Rubbish"),
|
|
|
|
DS3LocationData("RC: Large Soul of a Weary Warrior - lower cliff, end",
|
|
|
|
"Large Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("RC: Titanite Scale - lower cliff, first alcove", "Titanite Scale x2"),
|
|
|
|
DS3LocationData("RC: Titanite Scale - lower cliff, lower path", "Titanite Scale"),
|
|
|
|
DS3LocationData("RC: Lightning Gem - grave, room after first drop", "Lightning Gem"),
|
|
|
|
DS3LocationData("RC: Blessed Gem - grave, down lowest stairs", "Blessed Gem"),
|
|
|
|
DS3LocationData("RC: Simple Gem - grave, up stairs after first drop", "Simple Gem"),
|
|
|
|
DS3LocationData("RC: Large Soul of a Weary Warrior - wall lower, past two illusory walls",
|
|
|
|
"Large Soul of a Weary Warrior", hidden=True),
|
|
|
|
DS3LocationData("RC: Lightning Arrow - wall lower, past three illusory walls",
|
|
|
|
"Lightning Arrow"),
|
|
|
|
DS3LocationData("RC: Chloranthy Ring+3 - wall hidden, drop onto statue",
|
|
|
|
"Chloranthy Ring+3", hidden=True), # Hidden fall
|
|
|
|
DS3LocationData("RC: Ember - wall hidden, statue room", "Ember"),
|
|
|
|
DS3LocationData("RC: Filianore's Spear Ornament - wall hidden, by ladder",
|
|
|
|
"Filianore's Spear Ornament"),
|
|
|
|
DS3LocationData("RC: Antiquated Plain Garb - wall hidden, before boss",
|
|
|
|
"Antiquated Plain Garb"),
|
|
|
|
DS3LocationData("RC: Violet Wrappings - wall hidden, before boss", "Violet Wrappings"),
|
|
|
|
DS3LocationData("RC: Soul of a Weary Warrior - lower cliff, by first alcove",
|
|
|
|
"Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("RC: Twinkling Titanite - church path, left of boss door",
|
|
|
|
"Twinkling Titanite x2"),
|
|
|
|
DS3LocationData("RC: Budding Green Blossom - church path", "Budding Green Blossom x3"),
|
|
|
|
DS3LocationData("RC: Titanite Chunk - swamp center, peninsula edge", "Titanite Chunk"),
|
|
|
|
DS3LocationData("RC: Large Soul of a Weary Warrior - swamp center, by peninsula",
|
|
|
|
"Large Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("RC: Soul of a Weary Warrior - swamp right, by sunken church",
|
|
|
|
"Soul of a Weary Warrior"),
|
|
|
|
DS3LocationData("RC: Titanite Scale - upper cliff, bridge", "Titanite Scale"),
|
|
|
|
DS3LocationData("RC: Soul of a Crestfallen Knight - swamp far, behind crystal",
|
|
|
|
"Soul of a Crestfallen Knight"),
|
|
|
|
DS3LocationData("RC: White Birch Bow - swamp far left, up hill", "White Birch Bow"),
|
|
|
|
DS3LocationData("RC: Titanite Chunk - swamp far left, up hill", "Titanite Chunk"),
|
|
|
|
DS3LocationData("RC: Young White Branch - swamp far left, by white tree #1",
|
|
|
|
"Young White Branch"),
|
|
|
|
DS3LocationData("RC: Young White Branch - swamp far left, by white tree #2",
|
|
|
|
"Young White Branch"),
|
|
|
|
DS3LocationData("RC: Young White Branch - swamp far left, by white tree #3",
|
|
|
|
"Young White Branch"),
|
|
|
|
DS3LocationData("RC: Ringed Knight Paired Greatswords - church path, mob drop",
|
|
|
|
"Ringed Knight Paired Greatswords", drop=True,
|
|
|
|
hidden=True), # Guaranteed drop from a normal-looking Ringed Knight
|
|
|
|
DS3LocationData("RC: Hidden Blessing - swamp center, mob drop", "Hidden Blessing",
|
|
|
|
drop=True, hidden=True), # Guaranteed drop from Judicator
|
|
|
|
DS3LocationData("RC: Divine Blessing - wall top, mob drop", "Divine Blessing",
|
|
|
|
drop=True, hidden=True), # Guaranteed drop from Judicator
|
|
|
|
DS3LocationData("RC: Divine Blessing - streets monument, mob drop", "Divine Blessing",
|
|
|
|
drop=True,
|
|
|
|
hidden=True), # Guaranteed drop from Judicator, "Show Your Humanity" puzzle
|
|
|
|
DS3LocationData("RC: Ring of the Evil Eye+3 - grave, mimic", "Ring of the Evil Eye+3",
|
|
|
|
mimic=True),
|
|
|
|
DS3LocationData("RC: Iron Dragonslayer Helm - swamp far, miniboss drop",
|
|
|
|
"Iron Dragonslayer Helm", miniboss=True),
|
|
|
|
DS3LocationData("RC: Iron Dragonslayer Armor - swamp far, miniboss drop",
|
|
|
|
"Iron Dragonslayer Armor", miniboss=True),
|
|
|
|
DS3LocationData("RC: Iron Dragonslayer Gauntlets - swamp far, miniboss drop",
|
|
|
|
"Iron Dragonslayer Gauntlets", miniboss=True),
|
|
|
|
DS3LocationData("RC: Iron Dragonslayer Leggings - swamp far, miniboss drop",
|
|
|
|
"Iron Dragonslayer Leggings", miniboss=True),
|
|
|
|
DS3LocationData("RC: Church Guardian Shiv - swamp far left, in building",
|
|
|
|
"Church Guardian Shiv"),
|
|
|
|
DS3LocationData("RC: Spears of the Church - hidden boss drop", "Spears of the Church",
|
|
|
|
boss=True), # Midir drop
|
|
|
|
DS3LocationData("RC: Ritual Spear Fragment - church path", "Ritual Spear Fragment"),
|
|
|
|
DS3LocationData("RC: Titanite Scale - swamp far, lagoon entrance", "Titanite Scale"),
|
|
|
|
DS3LocationData("RC: Twinkling Titanite - grave, lizard past first drop",
|
|
|
|
"Twinkling Titanite", lizard=True),
|
|
|
|
DS3LocationData("RC: Titanite Scale - grave, lizard past first drop", "Titanite Scale",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("RC: Twinkling Titanite - streets high, lizard", "Twinkling Titanite x2",
|
|
|
|
lizard=True),
|
|
|
|
DS3LocationData("RC: Titanite Scale - wall lower, lizard", "Titanite Scale", lizard=True),
|
|
|
|
DS3LocationData("RC: Twinkling Titanite - wall top, lizard on side path",
|
|
|
|
"Twinkling Titanite", lizard=True),
|
|
|
|
DS3LocationData("RC: Soul of Slave Knight Gael", "Soul of Slave Knight Gael",
|
|
|
|
prominent=True, boss=True),
|
|
|
|
DS3LocationData("RC: Blood of the Dark Soul - end boss drop", "Blood of the Dark Soul"),
|
|
|
|
DS3LocationData("RC: Titanite Slab - ashes, mob drop", "Titanite Slab",
|
|
|
|
drop=True,
|
|
|
|
hidden=True), # Guaranteed drop from normal-looking Ringed Knight
|
|
|
|
|
|
|
|
# Lapp
|
|
|
|
DS3LocationData("RC: Siegbräu - Lapp", "Siegbräu", missable=True,
|
|
|
|
npc=True), # Lapp (quest)
|
|
|
|
# Quest or Shrine Handmaiden after death
|
|
|
|
DS3LocationData("RC: Lapp's Helm - Lapp", "Lapp's Helm", npc=True, shop=True),
|
|
|
|
DS3LocationData("RC: Lapp's Armor - Lapp", "Lapp's Armor", npc=True, shop=True),
|
|
|
|
DS3LocationData("RC: Lapp's Gauntlets - Lapp", "Lapp's Gauntlets", npc=True, shop=True),
|
|
|
|
DS3LocationData("RC: Lapp's Leggings - Lapp", "Lapp's Leggings", npc=True, shop=True),
|
|
|
|
],
|
|
|
|
|
|
|
|
# Unlockable shops. We only bother creating a "region" for these for shops that are locked
|
|
|
|
# behind keys and always have items available either through the shop or through the NPC's
|
|
|
|
# ashes.
|
|
|
|
"Greirat's Shop": [
|
|
|
|
DS3LocationData("FS: Blue Tearstone Ring - Greirat", "Blue Tearstone Ring",
|
|
|
|
static='01,0:50006120::', npc=True),
|
|
|
|
DS3LocationData("FS: Ember - Greirat", "Ember", static="99,0:-1:110000,120000,70000110:",
|
|
|
|
shop=True, npc=True),
|
|
|
|
|
|
|
|
# Undead Settlement rewards
|
|
|
|
DS3LocationData("FS: Divine Blessing - Greirat from US", "Divine Blessing",
|
|
|
|
static='99,0:-1:110000,120000,70000150,70000175:', missable=True,
|
|
|
|
shop=True, npc=True),
|
|
|
|
DS3LocationData("FS: Ember - Greirat from US", "Ember",
|
|
|
|
static='99,0:-1:110000,120000,70000150,70000175:', missable=True,
|
|
|
|
shop=True, npc=True),
|
|
|
|
|
|
|
|
# Irityhll rewards
|
|
|
|
DS3LocationData("FS: Divine Blessing - Greirat from IBV", "Divine Blessing",
|
|
|
|
static='99,0:-1:110000,120000,70000151,70000176:', missable=True,
|
|
|
|
shop=True, npc=True),
|
|
|
|
DS3LocationData("FS: Hidden Blessing - Greirat from IBV", "Hidden Blessing",
|
|
|
|
static='99,0:-1:110000,120000,70000151,70000176:', missable=True,
|
|
|
|
shop=True, npc=True),
|
|
|
|
DS3LocationData("FS: Titanite Scale - Greirat from IBV", "Titanite Scale",
|
|
|
|
static='99,0:-1:110000,120000,70000151,70000176:', missable=True,
|
|
|
|
shop=True, npc=True),
|
|
|
|
DS3LocationData("FS: Twinkling Titanite - Greirat from IBV", "Twinkling Titanite",
|
|
|
|
static='99,0:-1:110000,120000,70000151,70000176:', missable=True,
|
|
|
|
shop=True, npc=True),
|
|
|
|
|
|
|
|
# Lothric rewards (from Shrine Handmaid)
|
|
|
|
DS3LocationData("FS: Ember - shop for Greirat's Ashes", "Twinkling Titanite",
|
|
|
|
static='99,0:-1:110000,120000,70000152,70000177:', missable=True,
|
|
|
|
shop=True, npc=True),
|
|
|
|
],
|
|
|
|
"Karla's Shop": [
|
|
|
|
DS3LocationData("FS: Affinity - Karla", "Affinity", shop=True, npc=True),
|
|
|
|
DS3LocationData("FS: Dark Edge - Karla", "Dark Edge", shop=True, npc=True),
|
|
|
|
|
|
|
|
# Quelana Pyromancy Tome
|
|
|
|
DS3LocationData("FS: Firestorm - Karla for Quelana Tome", "Firestorm", missable=True,
|
|
|
|
shop=True, npc=True),
|
|
|
|
DS3LocationData("FS: Rapport - Karla for Quelana Tome", "Rapport", missable=True,
|
|
|
|
shop=True, npc=True),
|
|
|
|
DS3LocationData("FS: Fire Whip - Karla for Quelana Tome", "Fire Whip", missable=True,
|
|
|
|
shop=True, npc=True),
|
|
|
|
|
|
|
|
# Grave Warden Pyromancy Tome
|
|
|
|
DS3LocationData("FS: Black Flame - Karla for Grave Warden Tome", "Black Flame",
|
|
|
|
missable=True, shop=True, npc=True),
|
|
|
|
DS3LocationData("FS: Black Fire Orb - Karla for Grave Warden Tome", "Black Fire Orb",
|
|
|
|
missable=True, shop=True, npc=True),
|
|
|
|
|
|
|
|
# Deep Braille Divine Tome. This can also be given to Irina, but it'll fail her quest
|
|
|
|
DS3LocationData("FS: Gnaw - Karla for Deep Braille Tome", "Gnaw", missable=True,
|
|
|
|
npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Deep Protection - Karla for Deep Braille Tome", "Deep Protection",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
|
|
|
|
# Londor Braille Divine Tome. This can also be given to Irina, but it'll fail her quest
|
|
|
|
DS3LocationData("FS: Vow of Silence - Karla for Londor Tome", "Vow of Silence",
|
|
|
|
missable=True, npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Dark Blade - Karla for Londor Tome", "Dark Blade", missable=True,
|
|
|
|
npc=True, shop=True),
|
|
|
|
DS3LocationData("FS: Dead Again - Karla for Londor Tome", "Dead Again", missable=True,
|
|
|
|
npc=True, shop=True),
|
|
|
|
|
|
|
|
# Drops on death. Missable because the player would have to decide between killing her or
|
|
|
|
# seeing everything she sells.
|
|
|
|
DS3LocationData("FS: Karla's Pointed Hat - kill Karla", "Karla's Pointed Hat",
|
|
|
|
static='07,0:50006150::', missable=True, drop=True, npc=True),
|
|
|
|
DS3LocationData("FS: Karla's Coat - kill Karla", "Karla's Coat",
|
|
|
|
static='07,0:50006150::', missable=True, drop=True, npc=True),
|
|
|
|
DS3LocationData("FS: Karla's Gloves - kill Karla", "Karla's Gloves",
|
|
|
|
static='07,0:50006150::', missable=True, drop=True, npc=True),
|
|
|
|
DS3LocationData("FS: Karla's Trousers - kill Karla", "Karla's Trousers",
|
|
|
|
static='07,0:50006150::', missable=True, drop=True, npc=True),
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
],
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
for i, region in enumerate(region_order):
|
|
|
|
for location in location_tables[region]: location.region_value = i
|
|
|
|
|
|
|
|
for region in [
|
|
|
|
"Painted World of Ariandel (Before Contraption)",
|
|
|
|
"Painted World of Ariandel (After Contraption)",
|
|
|
|
"Dreg Heap",
|
|
|
|
"Ringed City",
|
|
|
|
]:
|
|
|
|
for location in location_tables[region]:
|
|
|
|
location.dlc = True
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
for region in [
|
|
|
|
"Firelink Shrine Bell Tower",
|
|
|
|
"Greirat's Shop",
|
|
|
|
"Karla's Shop"
|
|
|
|
]:
|
|
|
|
for location in location_tables[region]:
|
|
|
|
location.conditional = True
|
|
|
|
|
|
|
|
location_name_groups: Dict[str, Set[str]] = {
|
|
|
|
# We could insert these locations automatically with setdefault(), but we set them up explicitly
|
|
|
|
# instead so we can choose the ordering.
|
|
|
|
"Prominent": set(),
|
|
|
|
"Progression": set(),
|
|
|
|
"Boss Rewards": set(),
|
|
|
|
"Miniboss Rewards": set(),
|
|
|
|
"Mimic Rewards": set(),
|
|
|
|
"Hostile NPC Rewards": set(),
|
|
|
|
"Friendly NPC Rewards": set(),
|
|
|
|
"Small Crystal Lizards": set(),
|
|
|
|
"Upgrade": set(),
|
|
|
|
"Small Souls": set(),
|
|
|
|
"Boss Souls": set(),
|
|
|
|
"Unique": set(),
|
|
|
|
"Healing": set(),
|
|
|
|
"Miscellaneous": set(),
|
|
|
|
"Hidden": set(),
|
|
|
|
"Weapons": set(),
|
|
|
|
"Shields": set(),
|
|
|
|
"Armor": set(),
|
|
|
|
"Rings": set(),
|
|
|
|
"Spells": set(),
|
|
|
|
}
|
|
|
|
|
|
|
|
location_descriptions = {
|
|
|
|
"Prominent": "A small number of locations that are in very obvious locations. Mostly boss " + \
|
|
|
|
"drops. Ideal for setting as priority locations.",
|
|
|
|
"Progression": "Locations that contain items in vanilla which unlock other locations.",
|
|
|
|
"Boss Rewards": "Boss drops. Does not include soul transfusions or shop items.",
|
|
|
|
"Miniboss Rewards": "Miniboss drops. Only includes enemies considered minibosses by the " + \
|
|
|
|
"enemy randomizer.",
|
|
|
|
"Mimic Rewards": "Drops from enemies that are mimics in vanilla.",
|
|
|
|
"Hostile NPC Rewards": "Drops from NPCs that are hostile to you. This includes scripted " + \
|
|
|
|
"invaders and initially-friendly NPCs that must be fought as part of their quest.",
|
|
|
|
"Friendly NPC Rewards": "Items given by friendly NPCs as part of their quests or from " + \
|
|
|
|
"non-violent interaction.",
|
|
|
|
"Upgrade": "Locations that contain upgrade items in vanilla, including titanite, gems, and " + \
|
|
|
|
"Shriving Stones.",
|
|
|
|
"Small Souls": "Locations that contain soul items in vanilla, not including boss souls.",
|
|
|
|
"Boss Souls": "Locations that contain boss souls in vanilla, as well as Soul of Rosaria.",
|
|
|
|
"Unique": "Locations that contain items in vanilla that are unique per NG cycle, such as " + \
|
|
|
|
"scrolls, keys, ashes, and so on. Doesn't cover equipment, spells, or souls.",
|
|
|
|
"Healing": "Locations that contain Undead Bone Shards and Estus Shards in vanilla.",
|
|
|
|
"Miscellaneous": "Locations that contain generic stackable items in vanilla, such as arrows, " +
|
|
|
|
"firebombs, buffs, and so on.",
|
|
|
|
"Hidden": "Locations that are particularly difficult to find, such as behind illusory " + \
|
|
|
|
"walls, down hidden drops, and so on. Does not include large locations like Untended " + \
|
|
|
|
"Graves or Archdragon Peak.",
|
|
|
|
"Weapons": "Locations that contain weapons in vanilla.",
|
|
|
|
"Shields": "Locations that contain shields in vanilla.",
|
|
|
|
"Armor": "Locations that contain armor in vanilla.",
|
|
|
|
"Rings": "Locations that contain rings in vanilla.",
|
|
|
|
"Spells": "Locations that contain spells in vanilla.",
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
location_dictionary: Dict[str, DS3LocationData] = {}
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
for location_name, location_table in location_tables.items():
|
DS3: Dark Souls 3 Major Update/Refactor (#1864)
* fix estus shard/bone shard numbers
there are only 11 estus shards in the pool, so fixed number of estus shards so everything can be collected, and upped the number of bone shards in the pool to fix datapackage numbers. new counts went from: 15(estus) + 5(bones) = 20(total) TO 11(estus) + 9(bones) = 20(total)
* Update locations_data.py
changed estus shard/bone shard counts to match the counts in items_data.py. same reasoning as the commit for that, only 11 estus in game
* added new options "Late DLC"
revampled "Late Basin of Vows" option
added the Fire Demon location in Undead Sanctuary
* first file dump
added new settings for customizing pool options
sorted all the item pools
code clean up
fixed estus/bone shard counts
still need to figure out location excluding
* bunch of changes
added new locations
put locations into specific lists
made DarkSouls3Locations for each list of items
still need to figure out how to exclude
* excluded locations from generating without options, created gotthard_region, update how the pool fills additional items, update location/item tables, create more tables
* code cleanup, remove extra tables, add grave key/eyes of a firekeeper back to key pool
* fixed some logging
* add more detailed options descriptions
* forgot to update progressive locations updates too whoops
* remove irina's tower key from items/location list. the current ID's dont work to shuffle
* fixed item-to-locations, added new weapons, added new armors, added new rings, added "eyes of a fire keeper" to key locations list to balance, adjusted tables
* added HWL: broken straight sword location, moved Greirat's ashes to NPC items
* remove hwl: broken short sword location/item from pool (does not exist), fix item/location counts in options, general code clean up
* more code cleanup, fix Havels Ring +3 location/properly renamed item, changed Estus/Bone Shard names to not include a +| added a missing undead bone shard
* fixed npc rule, added a bunch of ring locations, fixed ring tables
* updated options
* cleaned up more code, edited some option names
* start of new items system
* DS3: Major refactor (allows for defining more items than those in vanilla locations)
* DS3: Repair changes overwritten by refactor
* DS3: Re-implement new options for location categories
* DS3: Make replacement item lists for most unique item types
* DS3: Remove accidentally added apworld
* DS3: Make option names more consistent
* DS3: Fix Pyromancer's Parting Flame location category
* DS3: Add new items
* DS3: Fix access rule for DLC/Contraption Key
* DS3: Only replace unrandomized progression items with events
Also fix some location names/categories
* DS3: Change some location names to be in line with their items
* DS3: Add randomized infusion code (only works for Broadsword)
* DS3: Make varied item pool an option
* added remaining weapons, shields, armors, rings, spells, dlc equivalents | added remaining dlc ring locations (2 in dreg heap, 5 in ringed city)
* adjusted 'Progressive Locations' counts and added new table
* added more souls + upgrade gems
* added the rest of consumables
* reverted adding an additional 'progressive location 4' table and added bulk progression locations to prog. location 3 table
* DS3: Add infusion categories and some cleanup of items
* DS3: Fix item ordering
* DS3: Fix infusion/upgrade code extra if
* DS3: Disable some unmarked cut content items
* DS3: Rename blessed red and white shield+1
* DS3: Implement guaranteed_items option
* DS3: Remove print statement
* DS3: Add extra check for trying to remove items from an empty list
* add unused content item id's
* DS3: Move cut content to its own list
* DS3: Classify spells and healing upgrades as useful
* DS3: Implement get_filler_item_name
* DS3: Change lower bounds for upgrades from +1 to +0
* DS3: Move Ancient Dragon Greatshield back to vanilla and recategorize some useful consumables
* DS3: Guaranteed items checks for number of existing items before replacing
* added remaining progressive items, fixed npc rules, adjusted option location counts
* delete extra items, add rule for dancer/late basin
* seperate PW into two parts (can access first half w/o contraption key | SKIP more unused items
* DS3: Minor linting changes
* DS3: Update required_client_version
* DS3: Remove rule for bell tower access
The key can always be purchased from the shop
* DS3: Move location category option checks to generate_early
* added "Boss Soul" option to pool
* DS3: Fix rules for boss souls and update misc location count
* DS3: Address minor review comments
* DS3: Change category enums to IntEnum
* DS3: Make apworld
---------
Co-authored-by: Brooty Johnson <83629348+Br00ty@users.noreply.github.com>
2023-07-04 06:46:18 +00:00
|
|
|
location_dictionary.update({location_data.name: location_data for location_data in location_table})
|
DS3: Version 3.0.0 (#3128)
* Update worlds/dark_souls_3/Locations.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Fix Covetous Silver Serpent Ring location
* Update location groups
This should cover pretty much all of the seriously hidden items. It
also splits out miniboss drops, mimic drops, and hostile NPC drops.
* Remove the "Guarded by Keys" group
On reflection, I don't think this is actually that useful. It'll also
get a lot muddier once we can randomize shops and ashes become
pseudo-"keys".
* Restore Knight Slayer's Ring classification
* Support infusions/upgrades in the new DS3 mod system
* Support random starting loadouts
* Make an item's NPC status orthogonal to its category
* Track location groups with flags
* Track Archipelago/Offline mismatches on the server
Also fix a few incorrect item names.
* Add additional locations that are now randomizable
* Don't put soul and multiple items in shops
* Add an option to enable whether NG+ items/locations are included
* Clean up useful item categorization
There are so many weapons in the game now, it doesn't make sense to
treat them all as useful
* Add more variety to filler items
* Iron out a few bugs and incompatibilities
* Fix more silly bugs
* Get tests passing
* Update options to cover new item types
Also recategorize some items.
* Verify the default values of `Option`s.
Since `Option.verify()` can handle normalization of option names, this allows options to define defaults which rely on that normalization. For example, it allows a world to exclude certain locations by default.
This also makes it easier to catch errors if a world author accidentally sets an invalid default.
* Make a few more improvements and fixes
* Randomize Path of the Dragon
* Mark items that unlock checks as useful
These items all unlock missable checks, but they're still good to ahve in the game for variety's sake.
* Guarantee more NPC quests are completable
* Fix a syntax error
* Fix rule definition
* Support enemy randomization
* Support online Yhorm randomization
* Remove a completed TODO
* Fix tests
* Fix force_unique
* Add an option to smooth out upgrade item progression
* Add helpers for setting location/entrance rules
* Support smoother soul item progression
* Fill extra smoothing items into conditional locations as well as other worlds
* Add health item smoothing
* Handle infusions at item generation time
* Handle item upgrades at genreation time
* Fix Grave Warden's Ashes
* Don't overwrite old rules
* Randomize items based on spheres instead of DS3 locations
* Add a smoothing option for weapon upgrades
* Add rules for crow trades
* Small fixes
* Fix a few more bugs
* Fix more bugs
* Try to prevent Path of the Dragon from going somewhere it doesn't work
* Add the ability to provide enemy presets
* Various fixes and features
* Bug fixes
* Better Coiled Sword placement
* Structure DarkSouls3Location more like DarkSouls3Item
* Add events to make DS3's spheres more even
* Restructure locations to work like items do now
* Add rules for more missable locations
* Don't add two Storm Rulers
* Place Hawk Ring in Farron Keep
* Mark the Grass Crest Shield as useful
* Mark new progression items
* Fix a bug
* Support newer better Path of the Dragon code
* Don't lock the player out of Coiled Sword
* Don't create events for missable locations
* Don't throw strings
* Don't smooth event items
* Properly categorize Butcher Knife
* Be more careful about placing Yhorm in low-randomization scenarios
* Don't try to smooth DLC items with DLC disabled
* Fix another Yhorm bug
* Fix upgrade/infusion logic
* Remove the PoolType option
This distinction is no longer meaningful now that every location in
the game of each type is randomized
* Categorize HWL: Red Eye Orb as an NPC location
* Don't place Storm Ruler on CA: Coiled Sword
* Define flatten() locally to make this APWorld capable
* Fix some more Leonhard weirdness
* Fix unique item randomization
* Don't double Twin Dragon Greatshield
* Remove debugging print
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Don't add double Storm Ruler
Also remove now-redundant item sorting by category in create_items.
* Add a missing dlc_enabled check
* Use nicer options syntax
* Bump data_version
* Mention where Yhorm is in which world
* Better handle excluded events
* Add a newline to Yhorm location
* Better way of handling excluded unradomized progression locations
* Fix a squidge of nondeterminism
* Only smooth items from this world
* Don't smooth progression weapons
* Remove a location that doesn't actually exist in-game
* Classify Power Within as useful
* Clarify location names
* Fix location requirements
* Clean up randomization options
* Properly name Coiled Sword location
* Add an option for configuring how missable items are handled
* Fix some bugs from location name updates
* Fix location guide link
* Fix a couple locations that were busted offline
* Update detailed location descriptions
* Fix some bugs when generating for a multiworld
* Inject Large Leather Shield
* Fix a few location issues
* Don't allow progression_skip_balancing for unnecessary locs
* Update some location info
* Don't uniquify the wrong items
* Fix some more location issues
* More location fixes
* Use hyphens instead of parens for location descriptions
* Update and fix more locations
* Fix Soul of Cinder boss name
* Fix some logic issues
* Add item groups and document item/location groups
* Fix the display name for "Impatient Mimics"
* Properly handle Transposing Kiln and Pyromancer's Flame
* Testing
* Some fixes to NPC quests, late basin, and transposing kiln
* Improve a couple location names
* Split out and improve missable NPC item logic
* Don't allow crow trades to have foreign items
* Fix a variable capture bug
* Make sure early items are accessible early even with early Castle
* Mark ID giant slave drops as missable
* Make sure late basin means that early items aren't behind it
* Make is_location_available explicitly private
* Add an _add_item_rule utility that checks availability
* Clear excluded items if excluded_locations == "unnecessary"
* Don't allow upgrades/infusions in crow trades
* Fix the documentation for deprecated options
* Create events for all excluded locations
This allows `can_reach` logic to work even if the locations are
randomized.
* Fix up Patches' and Siegward's logic based on some manual testing
* Factor out more sub-methods for setting location rules
* Oops, left these in
* Fixing name
* Left that in too
* Changing to NamedRange to support special_range_names
* Alphabetizing
* Don't call _is_location_available on foreign locations
* Add missing Leonhard items
* Changing late basin to have a post-small-doll option
* Update basin option, add logic for some of Leonhard Hawkwood and Orbeck
* Simplifying an option, fixing a copy-paste error
* Removing trailing whitespace
* Changing lost items to go into start inventory
* Revert Basin changes
* Oops
* Update Options.py
* Reverting small doll changes
* Farron Keep boss requirement logic
* Add Scroll for late_dlc
* Fixing excluded unnecessary locations
* Adding Priestess Ring as being after UG boss
* Removing missable from Corvian Titanite Slab
* Adding KFF Yhorm boss locks
* Screams about Creighton
* Elite Knight Set isn't permanently missable
* Adding Kiln requirement to KFF
* fixing valid_keys and item groups
* Fixing an option-checker
* Throwing unplaceable Storm Ruler into start inventory
* Update locations
* Refactor item injection
* Update setup doc
* Small fixes
* Fix another location name
* Fix injection calculation
* Inject guaranteed items along with progression items
* Mark boss souls as required for access to regions
This allows us to set quest requirements for boss souls and have them
automatically propagated to regions, means we need less machinery for
Yhorm bosses, and allows us to get rid of a few region-transition
events.
* Make sure Sirris's quest can be completed before Pontiff
* Removing unused list
* Changing dict to list
* Removing unused test
* Update __init__.py
* self.multiworld.random -> self.random (#9)
* Fix some miscellaneous location issues
* Rewrite the DS3 intro page/FAQ
* Removing modifying the itempool after fill (#7)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
* Small fixes to the setup guide (#10)
Small fixes, adding an example for connecting
* Expanded Late Basin of Vows and Late DLC (#6)
* Add proper requirements for CD: Black Eye Orb
* Fix Aldrich's name
* Document the differences with the 2.x.x branch
* Don't crash if there are more items than locations in smoothing
* Apply suggestions from code review
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Code review
* Fix _replace_with_filler
* Don't use the shared flatten function in SM
* Track local items separately rather than iterating the multiworld
* Various formatting/docs changes suggested by PyCharm (#12)
* Drop deprecated options
* Rename "offline randomizer" to "static randomizer" which is clearer
* Move `enable_*_locations` under removed options.
* Avoid excluded locations for locally-filled items
* Adding Removed options to error (#14)
* Changes for WebHost options display and the options overhaul
* unpack iterators in item list (#13)
* Allow worlds to add options to prebuilt groups
Previously, this crashed because `typing.NamedTuple` fields such as
`group.name` aren't assignable. Now it will only fail for group names
that are actually incorrectly cased, and will fail with a better error
message.
* Style changes, rename exclude behavior options, remove guaranteed items option
* Spacing/Formatting (#18)
* Various Fixes (#19)
* Universally Track Yhorm (#20)
* Account for excluded and missable
* These are behaviors now
* This is singular, apparently
* Oops
* Fleshing out the priority process
* Missable Titanite Lizards and excluded locations (#22)
* Small style/efficiency changes
* Final passthrough fixes (#24)
* Use rich option formatting
* Make the behavior option values actual behaviors (#25)
* Use !=
* Remove unused flatten utility
* Some changes from review (#28)
* Fixing determinism and making smooth faster (#29)
* Style change
* PyCharm and Mypy fixes (#26)
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Change yhorm default (#30)
* Add indirect condition (#27)
* Update worlds/dark_souls_3/docs/locations_en.md
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
* Ship all item IDs to the client
This avoids issues where items might get skipped if, for instance,
they're only in the starting inventory.
* Make sure to send AP IDs for infused/upgraded weapons
* Make `RandomEnemyPresetOption` compatible with ArchipelagoMW/Archipelago#3280 (#31)
* Fix cast
* More typing and small fixes (#32)
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2024-08-09 10:14:26 +00:00
|
|
|
|
|
|
|
for location_data in location_table:
|
|
|
|
if not location_data.is_event:
|
|
|
|
for group_name in location_data.location_groups():
|
|
|
|
location_name_groups[group_name].add(location_data.name)
|
|
|
|
|
|
|
|
# Allow entire locations to be added to location sets.
|
|
|
|
if not location_name.endswith(" Shop"):
|
|
|
|
location_name_groups[location_name] = set([
|
|
|
|
location_data.name for location_data in location_table
|
|
|
|
if not location_data.is_event
|
|
|
|
])
|
|
|
|
|
|
|
|
location_name_groups["Painted World of Ariandel"] = (
|
|
|
|
location_name_groups["Painted World of Ariandel (Before Contraption)"]
|
|
|
|
.union(location_name_groups["Painted World of Ariandel (After Contraption)"])
|
|
|
|
)
|
|
|
|
del location_name_groups["Painted World of Ariandel (Before Contraption)"]
|
|
|
|
del location_name_groups["Painted World of Ariandel (After Contraption)"]
|
|
|
|
|
|
|
|
location_name_groups["DLC"] = (
|
|
|
|
location_name_groups["Painted World of Ariandel"]
|
|
|
|
.union(location_name_groups["Dreg Heap"])
|
|
|
|
.union(location_name_groups["Ringed City"])
|
|
|
|
)
|