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