Stardew Valley: Fixed potential softlock with walnut purchases if Entrance Randomizer locks access to the field office (#2261)
* - Added logic rules for reaching, then completing, the field office in order to be allowed to spend significant amounts of walnuts * - Revert moving a method for some reason
This commit is contained in:
		
							parent
							
								
									b9ce2052c5
								
							
						
					
					
						commit
						80fed1c6fb
					
				| 
						 | 
				
			
			@ -1536,6 +1536,7 @@ class StardewLogic:
 | 
			
		|||
        reach_west = self.can_reach_region(Region.island_west)
 | 
			
		||||
        reach_hut = self.can_reach_region(Region.leo_hut)
 | 
			
		||||
        reach_southeast = self.can_reach_region(Region.island_south_east)
 | 
			
		||||
        reach_field_office = self.can_reach_region(Region.field_office)
 | 
			
		||||
        reach_pirate_cove = self.can_reach_region(Region.pirate_cove)
 | 
			
		||||
        reach_outside_areas = And(reach_south, reach_north, reach_west, reach_hut)
 | 
			
		||||
        reach_volcano_regions = [self.can_reach_region(Region.volcano),
 | 
			
		||||
| 
						 | 
				
			
			@ -1544,12 +1545,12 @@ class StardewLogic:
 | 
			
		|||
                                 self.can_reach_region(Region.volcano_floor_10)]
 | 
			
		||||
        reach_volcano = Or(reach_volcano_regions)
 | 
			
		||||
        reach_all_volcano = And(reach_volcano_regions)
 | 
			
		||||
        reach_walnut_regions = [reach_south, reach_north, reach_west, reach_volcano]
 | 
			
		||||
        reach_walnut_regions = [reach_south, reach_north, reach_west, reach_volcano, reach_field_office]
 | 
			
		||||
        reach_caves = And(self.can_reach_region(Region.qi_walnut_room), self.can_reach_region(Region.dig_site),
 | 
			
		||||
                          self.can_reach_region(Region.gourmand_frog_cave),
 | 
			
		||||
                          self.can_reach_region(Region.colored_crystals_cave),
 | 
			
		||||
                          self.can_reach_region(Region.shipwreck), self.has(Weapon.any_slingshot))
 | 
			
		||||
        reach_entire_island = And(reach_outside_areas, reach_all_volcano,
 | 
			
		||||
        reach_entire_island = And(reach_outside_areas, reach_field_office, reach_all_volcano,
 | 
			
		||||
                                  reach_caves, reach_southeast, reach_pirate_cove)
 | 
			
		||||
        if number <= 5:
 | 
			
		||||
            return Or(reach_south, reach_north, reach_west, reach_volcano)
 | 
			
		||||
| 
						 | 
				
			
			@ -1563,7 +1564,8 @@ class StardewLogic:
 | 
			
		|||
            return reach_entire_island
 | 
			
		||||
        gems = [Mineral.amethyst, Mineral.aquamarine, Mineral.emerald, Mineral.ruby, Mineral.topaz]
 | 
			
		||||
        return reach_entire_island & self.has(Fruit.banana) & self.has(gems) & self.can_mine_perfectly() & \
 | 
			
		||||
               self.can_fish_perfectly() & self.has(Craftable.flute_block) & self.has(Seed.melon) & self.has(Seed.wheat) & self.has(Seed.garlic)
 | 
			
		||||
               self.can_fish_perfectly() & self.has(Craftable.flute_block) & self.has(Seed.melon) & self.has(Seed.wheat) & self.has(Seed.garlic) & \
 | 
			
		||||
               self.can_complete_field_office()
 | 
			
		||||
 | 
			
		||||
    def has_everything(self, all_progression_items: Set[str]) -> StardewRule:
 | 
			
		||||
        all_regions = [region.name for region in vanilla_regions]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue