| 
									
										
										
										
											2022-03-13 04:04:12 -04:00
										 |  |  | from BaseClasses import MultiWorld | 
					
						
							|  |  |  | from ..AutoWorld import LogicMixin | 
					
						
							|  |  |  | from ..generic.Rules import set_rule | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ArchipIDLELogic(LogicMixin): | 
					
						
							|  |  |  |     def _archipidle_location_is_accessible(self, player_id, items_required): | 
					
						
							|  |  |  |         items_received = 0 | 
					
						
							|  |  |  |         for item in self.prog_items: | 
					
						
							|  |  |  |             if item[1] == player_id: | 
					
						
							|  |  |  |                 items_received += 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return items_received >= items_required | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def set_rules(world: MultiWorld, player: int): | 
					
						
							| 
									
										
										
										
											2022-03-13 15:31:27 -04:00
										 |  |  |     for i in range(1, 16): | 
					
						
							| 
									
										
										
										
											2022-03-13 04:04:12 -04:00
										 |  |  |         set_rule( | 
					
						
							| 
									
										
										
										
											2022-03-13 22:56:46 -04:00
										 |  |  |             world.get_location(f"IDLE for {int(i / 2)} minutes {30 if (i % 2) > 0 else 0} seconds", player), | 
					
						
							| 
									
										
										
										
											2022-03-13 04:04:12 -04:00
										 |  |  |             lambda state: state._archipidle_location_is_accessible(player, 0) | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-13 15:31:27 -04:00
										 |  |  |     for i in range(16, 31): | 
					
						
							| 
									
										
										
										
											2022-03-13 04:04:12 -04:00
										 |  |  |         set_rule( | 
					
						
							| 
									
										
										
										
											2022-03-13 22:56:46 -04:00
										 |  |  |             world.get_location(f"IDLE for {int(i / 2)} minutes {30 if (i % 2) > 0 else 0} seconds", player), | 
					
						
							| 
									
										
										
										
											2022-03-13 04:04:12 -04:00
										 |  |  |             lambda state: state._archipidle_location_is_accessible(player, 4) | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     for i in range(31, 51): | 
					
						
							|  |  |  |         set_rule( | 
					
						
							| 
									
										
										
										
											2022-03-13 22:56:46 -04:00
										 |  |  |             world.get_location(f"IDLE for {int(i / 2)} minutes {30 if (i % 2) > 0 else 0} seconds", player), | 
					
						
							| 
									
										
										
										
											2022-03-13 15:31:27 -04:00
										 |  |  |             lambda state: state._archipidle_location_is_accessible(player, 10) | 
					
						
							| 
									
										
										
										
											2022-03-13 04:04:12 -04:00
										 |  |  |         ) | 
					
						
							| 
									
										
										
										
											2022-03-13 14:37:56 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |     for i in range(51, 101): | 
					
						
							|  |  |  |         set_rule( | 
					
						
							| 
									
										
										
										
											2022-03-13 22:56:46 -04:00
										 |  |  |             world.get_location(f"IDLE for {int(i / 2)} minutes {30 if (i % 2) > 0 else 0} seconds", player), | 
					
						
							| 
									
										
										
										
											2022-03-13 15:31:27 -04:00
										 |  |  |             lambda state: state._archipidle_location_is_accessible(player, 20) | 
					
						
							| 
									
										
										
										
											2022-03-13 14:37:56 -04:00
										 |  |  |         ) |