Raft: Only modify itempool during create_items (#1939)
This commit is contained in:
		
							parent
							
								
									85a2193f35
								
							
						
					
					
						commit
						cbb7616f03
					
				| 
						 | 
				
			
			@ -48,15 +48,17 @@ class RaftWorld(World):
 | 
			
		|||
        maxRPSpecified = self.multiworld.maximum_resource_pack_amount[self.player].value
 | 
			
		||||
        minimumResourcePackAmount = min(minRPSpecified, maxRPSpecified)
 | 
			
		||||
        maximumResourcePackAmount = max(minRPSpecified, maxRPSpecified)
 | 
			
		||||
        isFillingFrequencies = self.multiworld.island_frequency_locations[self.player].value <= 3
 | 
			
		||||
        # Generate item pool
 | 
			
		||||
        pool = []
 | 
			
		||||
        frequencyItems = []
 | 
			
		||||
        for item in item_table:
 | 
			
		||||
            raft_item = self.create_item_replaceAsNecessary(item["name"])
 | 
			
		||||
            if "Frequency" in item["name"]:
 | 
			
		||||
            if isFillingFrequencies and "Frequency" in item["name"]:
 | 
			
		||||
                frequencyItems.append(raft_item)
 | 
			
		||||
            pool.append(raft_item)
 | 
			
		||||
        if self.multiworld.island_frequency_locations[self.player].value <= 3:
 | 
			
		||||
            else:
 | 
			
		||||
                pool.append(raft_item)
 | 
			
		||||
        if isFillingFrequencies:
 | 
			
		||||
            if not hasattr(self.multiworld, "raft_frequencyItemsPerPlayer"):
 | 
			
		||||
                self.multiworld.raft_frequencyItemsPerPlayer = {}
 | 
			
		||||
            self.multiworld.raft_frequencyItemsPerPlayer[self.player] = frequencyItems
 | 
			
		||||
| 
						 | 
				
			
			@ -104,6 +106,10 @@ class RaftWorld(World):
 | 
			
		|||
 | 
			
		||||
        self.multiworld.itempool += pool
 | 
			
		||||
 | 
			
		||||
        # Victory item
 | 
			
		||||
        self.multiworld.get_location("Utopia Complete", self.player).place_locked_item(
 | 
			
		||||
            RaftItem("Victory", ItemClassification.progression, None, player=self.player))
 | 
			
		||||
 | 
			
		||||
    def set_rules(self):
 | 
			
		||||
        set_rules(self.multiworld, self.player)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -195,21 +201,15 @@ class RaftWorld(World):
 | 
			
		|||
                elif self.multiworld.island_frequency_locations[self.player] == 3: # Random on island random order
 | 
			
		||||
                    self.setLocationItemFromRegion(previousLocation, locationToFrequencyItemMap[currentLocation])
 | 
			
		||||
                previousLocation = currentLocation
 | 
			
		||||
 | 
			
		||||
        # Victory item
 | 
			
		||||
        self.multiworld.get_location("Utopia Complete", self.player).place_locked_item(
 | 
			
		||||
            RaftItem("Victory", ItemClassification.progression, None, player=self.player))
 | 
			
		||||
    
 | 
			
		||||
    def setLocationItem(self, location: str, itemName: str):
 | 
			
		||||
        itemToUse = next(filter(lambda itm: itm.name == itemName, self.multiworld.raft_frequencyItemsPerPlayer[self.player]))
 | 
			
		||||
        self.multiworld.raft_frequencyItemsPerPlayer[self.player].remove(itemToUse)
 | 
			
		||||
        self.multiworld.itempool.remove(itemToUse)
 | 
			
		||||
        self.multiworld.get_location(location, self.player).place_locked_item(itemToUse)
 | 
			
		||||
    
 | 
			
		||||
    def setLocationItemFromRegion(self, region: str, itemName: str):
 | 
			
		||||
        itemToUse = next(filter(lambda itm: itm.name == itemName, self.multiworld.raft_frequencyItemsPerPlayer[self.player]))
 | 
			
		||||
        self.multiworld.raft_frequencyItemsPerPlayer[self.player].remove(itemToUse)
 | 
			
		||||
        self.multiworld.itempool.remove(itemToUse)
 | 
			
		||||
        location = random.choice(list(loc for loc in location_table if loc["region"] == region))
 | 
			
		||||
        self.multiworld.get_location(location["name"], self.player).place_locked_item(itemToUse)
 | 
			
		||||
    
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue