76 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from ... import options
 | |
| from ...options import ToolProgression
 | |
| from ...test import SVTestBase
 | |
| 
 | |
| 
 | |
| class TestWeaponsLogic(SVTestBase):
 | |
|     options = {
 | |
|         ToolProgression.internal_name: ToolProgression.option_progressive,
 | |
|         options.SkillProgression.internal_name: options.SkillProgression.option_progressive,
 | |
|     }
 | |
| 
 | |
|     def test_mine(self):
 | |
|         self.multiworld.state.collect(self.create_item("Progressive Pickaxe"))
 | |
|         self.multiworld.state.collect(self.create_item("Progressive Pickaxe"))
 | |
|         self.multiworld.state.collect(self.create_item("Progressive Pickaxe"))
 | |
|         self.multiworld.state.collect(self.create_item("Progressive Pickaxe"))
 | |
|         self.multiworld.state.collect(self.create_item("Progressive House"))
 | |
|         self.collect([self.create_item("Combat Level")] * 10)
 | |
|         self.collect([self.create_item("Mining Level")] * 10)
 | |
|         self.collect([self.create_item("Progressive Mine Elevator")] * 24)
 | |
|         self.multiworld.state.collect(self.create_item("Bus Repair"))
 | |
|         self.multiworld.state.collect(self.create_item("Skull Key"))
 | |
| 
 | |
|         self.give_item_and_check_reachable_mine("Progressive Sword", 1)
 | |
|         self.give_item_and_check_reachable_mine("Progressive Dagger", 1)
 | |
|         self.give_item_and_check_reachable_mine("Progressive Club", 1)
 | |
| 
 | |
|         self.give_item_and_check_reachable_mine("Progressive Sword", 2)
 | |
|         self.give_item_and_check_reachable_mine("Progressive Dagger", 2)
 | |
|         self.give_item_and_check_reachable_mine("Progressive Club", 2)
 | |
| 
 | |
|         self.give_item_and_check_reachable_mine("Progressive Sword", 3)
 | |
|         self.give_item_and_check_reachable_mine("Progressive Dagger", 3)
 | |
|         self.give_item_and_check_reachable_mine("Progressive Club", 3)
 | |
| 
 | |
|         self.give_item_and_check_reachable_mine("Progressive Sword", 4)
 | |
|         self.give_item_and_check_reachable_mine("Progressive Dagger", 4)
 | |
|         self.give_item_and_check_reachable_mine("Progressive Club", 4)
 | |
| 
 | |
|         self.give_item_and_check_reachable_mine("Progressive Sword", 5)
 | |
|         self.give_item_and_check_reachable_mine("Progressive Dagger", 5)
 | |
|         self.give_item_and_check_reachable_mine("Progressive Club", 5)
 | |
| 
 | |
|     def give_item_and_check_reachable_mine(self, item_name: str, reachable_level: int):
 | |
|         item = self.multiworld.create_item(item_name, self.player)
 | |
|         self.multiworld.state.collect(item)
 | |
|         rule = self.world.logic.mine.can_mine_in_the_mines_floor_1_40()
 | |
|         if reachable_level > 0:
 | |
|             self.assert_rule_true(rule, self.multiworld.state)
 | |
|         else:
 | |
|             self.assert_rule_false(rule, self.multiworld.state)
 | |
| 
 | |
|         rule = self.world.logic.mine.can_mine_in_the_mines_floor_41_80()
 | |
|         if reachable_level > 1:
 | |
|             self.assert_rule_true(rule, self.multiworld.state)
 | |
|         else:
 | |
|             self.assert_rule_false(rule, self.multiworld.state)
 | |
| 
 | |
|         rule = self.world.logic.mine.can_mine_in_the_mines_floor_81_120()
 | |
|         if reachable_level > 2:
 | |
|             self.assert_rule_true(rule, self.multiworld.state)
 | |
|         else:
 | |
|             self.assert_rule_false(rule, self.multiworld.state)
 | |
| 
 | |
|         rule = self.world.logic.mine.can_mine_in_the_skull_cavern()
 | |
|         if reachable_level > 3:
 | |
|             self.assert_rule_true(rule, self.multiworld.state)
 | |
|         else:
 | |
|             self.assert_rule_false(rule, self.multiworld.state)
 | |
| 
 | |
|         rule = self.world.logic.ability.can_mine_perfectly_in_the_skull_cavern()
 | |
|         if reachable_level > 4:
 | |
|             self.assert_rule_true(rule, self.multiworld.state)
 | |
|         else:
 | |
|             self.assert_rule_false(rule, self.multiworld.state)
 | 
