| 
									
										
										
										
											2022-07-22 01:02:25 -04:00
										 |  |  | import math | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-14 04:49:30 -05:00
										 |  |  | from worlds.AutoWorld import World | 
					
						
							|  |  |  | from worlds.generic.Rules import add_rule | 
					
						
							| 
									
										
										
										
											2022-07-22 01:02:25 -04:00
										 |  |  | from .Names import LocationName, ItemName | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-27 22:53:13 -05:00
										 |  |  | def set_rules(world: World): | 
					
						
							| 
									
										
										
										
											2022-07-22 01:02:25 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-27 22:53:13 -05:00
										 |  |  |     if False:#world.options.include_trade_sequence: | 
					
						
							|  |  |  |         add_rule(world.multiworld.get_location(LocationName.barnacles_island, world.player), | 
					
						
							|  |  |  |                     lambda state: state.has(ItemName.shell, world.player)) | 
					
						
							| 
									
										
										
										
											2022-07-22 01:02:25 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-27 22:53:13 -05:00
										 |  |  |         add_rule(world.multiworld.get_location(LocationName.blues_beach_hut, world.player), | 
					
						
							|  |  |  |                     lambda state: state.has(ItemName.present, world.player)) | 
					
						
							| 
									
										
										
										
											2022-07-22 01:02:25 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-27 22:53:13 -05:00
										 |  |  |         add_rule(world.multiworld.get_location(LocationName.brambles_bungalow, world.player), | 
					
						
							|  |  |  |                     lambda state: state.has(ItemName.flower, world.player)) | 
					
						
							| 
									
										
										
										
											2022-07-22 01:02:25 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-27 22:53:13 -05:00
										 |  |  |         add_rule(world.multiworld.get_location(LocationName.barters_swap_shop, world.player), | 
					
						
							|  |  |  |                     lambda state: state.has(ItemName.mirror, world.player)) | 
					
						
							| 
									
										
										
										
											2022-07-22 01:02:25 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-27 22:53:13 -05:00
										 |  |  |     if world.options.goal != "knautilus": | 
					
						
							| 
									
										
										
										
											2022-07-22 01:02:25 -04:00
										 |  |  |         required_banana_birds = math.floor( | 
					
						
							| 
									
										
										
										
											2024-02-27 22:53:13 -05:00
										 |  |  |                 world.options.number_of_banana_birds.value * (world.options.percentage_of_banana_birds.value / 100.0)) | 
					
						
							| 
									
										
										
										
											2022-07-22 01:02:25 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-27 22:53:13 -05:00
										 |  |  |         add_rule(world.multiworld.get_location(LocationName.banana_bird_mother, world.player), | 
					
						
							|  |  |  |                  lambda state: state.has(ItemName.banana_bird, world.player, required_banana_birds)) | 
					
						
							| 
									
										
										
										
											2022-07-22 01:02:25 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-27 22:53:13 -05:00
										 |  |  |     world.multiworld.completion_condition[world.player] = lambda state: state.has(ItemName.victory, world.player) |