diff --git a/CHANGELOG.md b/CHANGELOG.md index 8427f9be..f913b845 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## 0.5.1.0 +## 0.5.1.0 (+ Hotfix 0.5.1.1) - New "Nearby" Dungeon Item Shuffle option - Fixed issue with smith follower getting deleted incorrectly on s+q - Various generation and logic fixes for HMG/NL diff --git a/OverworldShuffle.py b/OverworldShuffle.py index 738dd45f..117b0b7e 100644 --- a/OverworldShuffle.py +++ b/OverworldShuffle.py @@ -8,7 +8,7 @@ from OWEdges import OWTileRegions, OWEdgeGroups, OWEdgeGroupsTerrain, OWExitType from OverworldGlitchRules import create_owg_connections from Utils import bidict -version_number = '0.5.1.0' +version_number = '0.5.1.1' # branch indicator is intentionally different across branches version_branch = '' diff --git a/docs/Customizer.md b/docs/Customizer.md index 7616a749..03908ea2 100644 --- a/docs/Customizer.md +++ b/docs/Customizer.md @@ -81,17 +81,17 @@ You may list each location for a player and the item you wish to place there. A This must be defined by player. Each player number should be listed with the appropriate section. Each section is a list of placement rules. Each placement rule has a specific type. -Supported Types: PlacementGroup, NotPlacmentGroup, PreferredLocationGroup +Supported Types: LocationGroup, NotLocationGroup, PreferredLocationGroup -#### PlacementGroup +#### LocationGroup You may define an item, and a list of locations. The locations may be weighted if desired. The item will be placed at one of the listed locations - this currently ignores logic. The item will be placed there. The special location 'Random' indicates that the item should be placed randomly, without any other consideration. This may be repeated for placement of multiple items like multiple bows or swords. -#### NotPlacementGroup +#### NotLocationGroup You may define an item and a list of locations that an item should not be placed at. This will apply to all items of that type. The logic is considered for this. If it is otherwise impossible, the item will be considered for the listed locations. This is important for small key layouts mostly, but it will try other locations first. -#### PreferredPlacementGroup +#### PreferredLocationGroup You may define a list of items and a list of locations. Those items will be considered first for placements and the logic will attempt to place those items in those locations first. If there are more item than locations or vice versa, the leftover items or location will be treated normally. (Although, the leftover items will be placed earlier by the algorithm than those not listed) diff --git a/source/classes/CustomSettings.py b/source/classes/CustomSettings.py index 17d66946..a636a776 100644 --- a/source/classes/CustomSettings.py +++ b/source/classes/CustomSettings.py @@ -146,14 +146,23 @@ class CustomSettings(object): args.mapshuffle[p] = get_setting(settings['mapshuffle'], args.mapshuffle[p]) args.compassshuffle[p] = get_setting(settings['compassshuffle'], args.compassshuffle[p]) + dungeon_item_map = { 0: 'none', + 1: 'wild' } + if args.mapshuffle[p] in dungeon_item_map: + args.mapshuffle[p] = dungeon_item_map[args.mapshuffle[p]] + if args.compassshuffle[p] in dungeon_item_map: + args.compassshuffle[p] = dungeon_item_map[args.compassshuffle[p]] + if args.bigkeyshuffle[p] in dungeon_item_map: + args.bigkeyshuffle[p] = dungeon_item_map[args.bigkeyshuffle[p]] + if get_setting(settings['keysanity'], args.keysanity): - if args.bigkeyshuffle[p] == 'none': + if args.bigkeyshuffle[p] in ['none', 0]: args.bigkeyshuffle[p] = 'wild' if args.keyshuffle[p] == 'none': args.keyshuffle[p] = 'wild' - if args.mapshuffle[p] == 'none': + if args.mapshuffle[p] in ['none', 0]: args.mapshuffle[p] = 'wild' - if args.compassshuffle[p] == 'none': + if args.compassshuffle[p] in ['none', 0]: args.compassshuffle[p] = 'wild' args.shufflebosses[p] = get_setting(settings['boss_shuffle'], get_setting(settings['shufflebosses'], args.shufflebosses[p]))