109 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			109 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								from . import InscryptionTestBase
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class GoalTestOrdered(InscryptionTestBase):
							 | 
						||
| 
								 | 
							
								    options = {
							 | 
						||
| 
								 | 
							
								        "goal": 0,
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def test_beatable(self) -> None:
							 | 
						||
| 
								 | 
							
								        for item_name in self.required_items_all_acts:
							 | 
						||
| 
								 | 
							
								            item = self.get_item_by_name(item_name)
							 | 
						||
| 
								 | 
							
								            self.collect(item)
							 | 
						||
| 
								 | 
							
								        for i in range(9):
							 | 
						||
| 
								 | 
							
								            item = self.get_item_by_name("Epitaph Piece")
							 | 
						||
| 
								 | 
							
								            self.collect(item)
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(True)
							 | 
						||
| 
								 | 
							
								        for item_name in self.required_items_all_acts:
							 | 
						||
| 
								 | 
							
								            item = self.get_item_by_name(item_name)
							 | 
						||
| 
								 | 
							
								            self.remove(item)
							 | 
						||
| 
								 | 
							
								            self.assertBeatable(False)
							 | 
						||
| 
								 | 
							
								            self.collect(item)
							 | 
						||
| 
								 | 
							
								        item = self.get_item_by_name("Epitaph Piece")
							 | 
						||
| 
								 | 
							
								        self.remove(item)
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(False)
							 | 
						||
| 
								 | 
							
								        self.collect(item)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class GoalTestUnordered(InscryptionTestBase):
							 | 
						||
| 
								 | 
							
								    options = {
							 | 
						||
| 
								 | 
							
								        "goal": 1,
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def test_beatable(self) -> None:
							 | 
						||
| 
								 | 
							
								        for item_name in self.required_items_all_acts:
							 | 
						||
| 
								 | 
							
								            item = self.get_item_by_name(item_name)
							 | 
						||
| 
								 | 
							
								            self.collect(item)
							 | 
						||
| 
								 | 
							
								        for i in range(9):
							 | 
						||
| 
								 | 
							
								            item = self.get_item_by_name("Epitaph Piece")
							 | 
						||
| 
								 | 
							
								            self.collect(item)
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(True)
							 | 
						||
| 
								 | 
							
								        for item_name in self.required_items_all_acts:
							 | 
						||
| 
								 | 
							
								            item = self.get_item_by_name(item_name)
							 | 
						||
| 
								 | 
							
								            self.remove(item)
							 | 
						||
| 
								 | 
							
								            self.assertBeatable(False)
							 | 
						||
| 
								 | 
							
								            self.collect(item)
							 | 
						||
| 
								 | 
							
								        item = self.get_item_by_name("Epitaph Piece")
							 | 
						||
| 
								 | 
							
								        self.remove(item)
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(False)
							 | 
						||
| 
								 | 
							
								        self.collect(item)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class GoalTestAct1(InscryptionTestBase):
							 | 
						||
| 
								 | 
							
								    options = {
							 | 
						||
| 
								 | 
							
								        "goal": 2,
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def test_beatable(self) -> None:
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(False)
							 | 
						||
| 
								 | 
							
								        film_roll = self.get_item_by_name("Film Roll")
							 | 
						||
| 
								 | 
							
								        self.collect(film_roll)
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(True)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class GoalTestGroupedEpitaphs(InscryptionTestBase):
							 | 
						||
| 
								 | 
							
								    options = {
							 | 
						||
| 
								 | 
							
								        "epitaph_pieces_randomization": 1,
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def test_beatable(self) -> None:
							 | 
						||
| 
								 | 
							
								        for item_name in self.required_items_all_acts:
							 | 
						||
| 
								 | 
							
								            item = self.get_item_by_name(item_name)
							 | 
						||
| 
								 | 
							
								            self.collect(item)
							 | 
						||
| 
								 | 
							
								        for i in range(3):
							 | 
						||
| 
								 | 
							
								            item = self.get_item_by_name("Epitaph Pieces")
							 | 
						||
| 
								 | 
							
								            self.collect(item)
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(True)
							 | 
						||
| 
								 | 
							
								        for item_name in self.required_items_all_acts:
							 | 
						||
| 
								 | 
							
								            item = self.get_item_by_name(item_name)
							 | 
						||
| 
								 | 
							
								            self.remove(item)
							 | 
						||
| 
								 | 
							
								            self.assertBeatable(False)
							 | 
						||
| 
								 | 
							
								            self.collect(item)
							 | 
						||
| 
								 | 
							
								        item = self.get_item_by_name("Epitaph Pieces")
							 | 
						||
| 
								 | 
							
								        self.remove(item)
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(False)
							 | 
						||
| 
								 | 
							
								        self.collect(item)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class GoalTestEpitaphsAsOne(InscryptionTestBase):
							 | 
						||
| 
								 | 
							
								    options = {
							 | 
						||
| 
								 | 
							
								        "epitaph_pieces_randomization": 2,
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def test_beatable(self) -> None:
							 | 
						||
| 
								 | 
							
								        for item_name in self.required_items_all_acts:
							 | 
						||
| 
								 | 
							
								            item = self.get_item_by_name(item_name)
							 | 
						||
| 
								 | 
							
								            self.collect(item)
							 | 
						||
| 
								 | 
							
								        item = self.get_item_by_name("Epitaph Pieces")
							 | 
						||
| 
								 | 
							
								        self.collect(item)
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(True)
							 | 
						||
| 
								 | 
							
								        for item_name in self.required_items_all_acts:
							 | 
						||
| 
								 | 
							
								            item = self.get_item_by_name(item_name)
							 | 
						||
| 
								 | 
							
								            self.remove(item)
							 | 
						||
| 
								 | 
							
								            self.assertBeatable(False)
							 | 
						||
| 
								 | 
							
								            self.collect(item)
							 | 
						||
| 
								 | 
							
								        item = self.get_item_by_name("Epitaph Pieces")
							 | 
						||
| 
								 | 
							
								        self.remove(item)
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(False)
							 | 
						||
| 
								 | 
							
								        self.collect(item)
							 |