Shivers: Adds ixupi captures priority option (#4403)
This commit is contained in:
parent
917335ec54
commit
a7b483e4b7
|
@ -110,6 +110,13 @@ class FullPots(Choice):
|
|||
option_mixed = 2
|
||||
|
||||
|
||||
class IxupiCapturesPriority(DefaultOnToggle):
|
||||
"""
|
||||
Ixupi captures are set to priority locations. This forces a progression item into these locations if possible.
|
||||
"""
|
||||
display_name = "Ixupi Captures are Priority"
|
||||
|
||||
|
||||
class PuzzleCollectBehavior(Choice):
|
||||
"""
|
||||
Defines what happens to puzzles on collect.
|
||||
|
@ -177,6 +184,7 @@ class ShiversOptions(PerGameCommonOptions):
|
|||
early_lightning: EarlyLightning
|
||||
location_pot_pieces: LocationPotPieces
|
||||
full_pots: FullPots
|
||||
ixupi_captures_priority: IxupiCapturesPriority
|
||||
puzzle_collect_behavior: PuzzleCollectBehavior
|
||||
local_items: ShiversLocalItems
|
||||
non_local_items: ShiversNonLocalItems
|
||||
|
|
|
@ -16,7 +16,7 @@ class ShiversWeb(WebWorld):
|
|||
"English",
|
||||
"setup_en.md",
|
||||
"setup/en",
|
||||
["GodlFire", "Mathx2"]
|
||||
["GodlFire", "Cynbel_Terreus"]
|
||||
)]
|
||||
option_groups = shivers_option_groups
|
||||
|
||||
|
@ -41,6 +41,20 @@ class ShiversWorld(World):
|
|||
def generate_early(self):
|
||||
self.pot_completed_list = []
|
||||
|
||||
# Pot piece shuffle location:
|
||||
if self.options.location_pot_pieces == "own_world":
|
||||
self.options.local_items.value |= {name for name, data in item_table.items() if
|
||||
data.type in [ItemType.POT, ItemType.POT_COMPLETE]}
|
||||
elif self.options.location_pot_pieces == "different_world":
|
||||
self.options.non_local_items.value |= {name for name, data in item_table.items() if
|
||||
data.type in [ItemType.POT, ItemType.POT_COMPLETE]}
|
||||
|
||||
# Ixupi captures priority locations:
|
||||
if self.options.ixupi_captures_priority:
|
||||
self.options.priority_locations.value |= (
|
||||
{name for name in self.location_names if name.startswith('Ixupi Captured')}
|
||||
)
|
||||
|
||||
def create_item(self, name: str) -> Item:
|
||||
data = item_table[name]
|
||||
return ShiversItem(name, data.classification, data.code, self.player)
|
||||
|
@ -194,14 +208,6 @@ class ShiversWorld(World):
|
|||
["Heal", "Easier Lyre"], weights=[95, 5], k=filler_needed
|
||||
))
|
||||
|
||||
# Pot piece shuffle location:
|
||||
if self.options.location_pot_pieces == "own_world":
|
||||
self.options.local_items.value |= {name for name, data in item_table.items() if
|
||||
data.type in [ItemType.POT, ItemType.POT_COMPLETE]}
|
||||
elif self.options.location_pot_pieces == "different_world":
|
||||
self.options.non_local_items.value |= {name for name, data in item_table.items() if
|
||||
data.type in [ItemType.POT, ItemType.POT_COMPLETE]}
|
||||
|
||||
self.multiworld.itempool += item_pool
|
||||
|
||||
def pre_fill(self) -> None:
|
||||
|
|
|
@ -7,6 +7,11 @@
|
|||
- [ScummVM](https://www.scummvm.org/downloads/) version 2.7.0 or later
|
||||
- [Shivers Randomizer](https://github.com/GodlFire/Shivers-Randomizer-CSharp/releases/latest) Latest release version
|
||||
|
||||
## Optional Software
|
||||
|
||||
- [PopTracker](https://github.com/black-sliver/PopTracker/releases/)
|
||||
- [Jax's Shivers PopTracker pack](https://github.com/blazik-barth/Shivers-Tracker/releases/)
|
||||
|
||||
## Setup ScummVM for Shivers
|
||||
|
||||
### GOG version of Shivers
|
||||
|
@ -57,4 +62,4 @@ validator page: [YAML Validation page](/mysterycheck)
|
|||
- Every puzzle
|
||||
- Every puzzle hint/solution
|
||||
- Every document that is considered a Flashback
|
||||
- Optionally information plaques.
|
||||
- Optionally information plaques
|
||||
|
|
Loading…
Reference in New Issue