-
Notifications
You must be signed in to change notification settings - Fork 660
/
Regions.py
2168 lines (2044 loc) · 228 KB
/
Regions.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
import typing
from BaseClasses import CollectionState, MultiWorld, Region, Entrance
from .Locations import SMWLocation
from .Levels import level_info_dict
from .Names import LocationName, ItemName
from worlds.generic.Rules import add_rule, set_rule
from worlds.AutoWorld import World
def create_regions(world: World, active_locations):
multiworld: MultiWorld = world.multiworld
player: int = world.player
menu_region = create_region(multiworld, player, active_locations, 'Menu', None)
yoshis_island_region = create_region(multiworld, player, active_locations, LocationName.yoshis_island_region, None)
yoshis_house_tile = create_region(multiworld, player, active_locations, LocationName.yoshis_house_tile, None)
yoshis_house_region_locations = []
if world.options.goal == "yoshi_egg_hunt":
yoshis_house_region_locations.append(LocationName.yoshis_house)
yoshis_house_region = create_region(multiworld, player, active_locations, LocationName.yoshis_house,
yoshis_house_region_locations)
yoshis_island_1_tile = create_region(multiworld, player, active_locations, LocationName.yoshis_island_1_tile, None)
yoshis_island_1_region = create_region(multiworld, player, active_locations, LocationName.yoshis_island_1_region, None)
yoshis_island_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.yoshis_island_1_exit_1,
[LocationName.yoshis_island_1_exit_1])
yoshis_island_2_tile = create_region(multiworld, player, active_locations, LocationName.yoshis_island_2_tile, None)
yoshis_island_2_region = create_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, None)
yoshis_island_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.yoshis_island_2_exit_1,
[LocationName.yoshis_island_2_exit_1])
yoshis_island_3_tile = create_region(multiworld, player, active_locations, LocationName.yoshis_island_3_tile, None)
yoshis_island_3_region = create_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, None)
yoshis_island_3_exit_1 = create_region(multiworld, player, active_locations, LocationName.yoshis_island_3_exit_1,
[LocationName.yoshis_island_3_exit_1])
yoshis_island_4_tile = create_region(multiworld, player, active_locations, LocationName.yoshis_island_4_tile, None)
yoshis_island_4_region = create_region(multiworld, player, active_locations, LocationName.yoshis_island_4_region, None)
yoshis_island_4_exit_1 = create_region(multiworld, player, active_locations, LocationName.yoshis_island_4_exit_1,
[LocationName.yoshis_island_4_exit_1])
yoshis_island_castle_tile = create_region(multiworld, player, active_locations, LocationName.yoshis_island_castle_tile, None)
yoshis_island_castle_region = create_region(multiworld, player, active_locations, LocationName.yoshis_island_castle_region, None)
yoshis_island_castle = create_region(multiworld, player, active_locations, LocationName.yoshis_island_castle,
[LocationName.yoshis_island_castle, LocationName.yoshis_island_koopaling])
yellow_switch_palace_tile = create_region(multiworld, player, active_locations, LocationName.yellow_switch_palace_tile, None)
yellow_switch_palace = create_region(multiworld, player, active_locations, LocationName.yellow_switch_palace,
[LocationName.yellow_switch_palace])
donut_plains_1_tile = create_region(multiworld, player, active_locations, LocationName.donut_plains_1_tile, None)
donut_plains_1_region = create_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, None)
donut_plains_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.donut_plains_1_exit_1,
[LocationName.donut_plains_1_exit_1])
donut_plains_1_exit_2 = create_region(multiworld, player, active_locations, LocationName.donut_plains_1_exit_2,
[LocationName.donut_plains_1_exit_2])
donut_plains_2_tile = create_region(multiworld, player, active_locations, LocationName.donut_plains_2_tile, None)
donut_plains_2_region = create_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, None)
donut_plains_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.donut_plains_2_exit_1,
[LocationName.donut_plains_2_exit_1])
donut_plains_2_exit_2 = create_region(multiworld, player, active_locations, LocationName.donut_plains_2_exit_2,
[LocationName.donut_plains_2_exit_2])
donut_plains_3_tile = create_region(multiworld, player, active_locations, LocationName.donut_plains_3_tile, None)
donut_plains_3_region = create_region(multiworld, player, active_locations, LocationName.donut_plains_3_region, None)
donut_plains_3_exit_1 = create_region(multiworld, player, active_locations, LocationName.donut_plains_3_exit_1,
[LocationName.donut_plains_3_exit_1])
donut_plains_4_tile = create_region(multiworld, player, active_locations, LocationName.donut_plains_4_tile, None)
donut_plains_4_region = create_region(multiworld, player, active_locations, LocationName.donut_plains_4_region, None)
donut_plains_4_exit_1 = create_region(multiworld, player, active_locations, LocationName.donut_plains_4_exit_1,
[LocationName.donut_plains_4_exit_1])
donut_secret_1_tile = create_region(multiworld, player, active_locations, LocationName.donut_secret_1_tile, None)
donut_secret_1_region = create_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, None)
donut_secret_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.donut_secret_1_exit_1,
[LocationName.donut_secret_1_exit_1])
donut_secret_1_exit_2 = create_region(multiworld, player, active_locations, LocationName.donut_secret_1_exit_2,
[LocationName.donut_secret_1_exit_2])
donut_secret_2_tile = create_region(multiworld, player, active_locations, LocationName.donut_secret_2_tile, None)
donut_secret_2_region = create_region(multiworld, player, active_locations, LocationName.donut_secret_2_region, None)
donut_secret_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.donut_secret_2_exit_1,
[LocationName.donut_secret_2_exit_1])
donut_ghost_house_tile = create_region(multiworld, player, active_locations, LocationName.donut_ghost_house_tile, None)
donut_ghost_house_region = create_region(multiworld, player, active_locations, LocationName.donut_ghost_house_region, None)
donut_ghost_house_exit_1 = create_region(multiworld, player, active_locations, LocationName.donut_ghost_house_exit_1,
[LocationName.donut_ghost_house_exit_1])
donut_ghost_house_exit_2 = create_region(multiworld, player, active_locations, LocationName.donut_ghost_house_exit_2,
[LocationName.donut_ghost_house_exit_2])
donut_secret_house_tile = create_region(multiworld, player, active_locations, LocationName.donut_secret_house_tile, None)
donut_secret_house_region = create_region(multiworld, player, active_locations, LocationName.donut_secret_house_region, None)
donut_secret_house_exit_1 = create_region(multiworld, player, active_locations, LocationName.donut_secret_house_exit_1,
[LocationName.donut_secret_house_exit_1])
donut_secret_house_exit_2 = create_region(multiworld, player, active_locations, LocationName.donut_secret_house_exit_2,
[LocationName.donut_secret_house_exit_2])
donut_plains_castle_tile = create_region(multiworld, player, active_locations, LocationName.donut_plains_castle_tile, None)
donut_plains_castle_region = create_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, None)
donut_plains_castle = create_region(multiworld, player, active_locations, LocationName.donut_plains_castle,
[LocationName.donut_plains_castle, LocationName.donut_plains_koopaling])
green_switch_palace_tile = create_region(multiworld, player, active_locations, LocationName.green_switch_palace_tile, None)
green_switch_palace = create_region(multiworld, player, active_locations, LocationName.green_switch_palace,
[LocationName.green_switch_palace])
donut_plains_top_secret_tile = create_region(multiworld, player, active_locations, LocationName.donut_plains_top_secret_tile, None)
donut_plains_top_secret = create_region(multiworld, player, active_locations, LocationName.donut_plains_top_secret, None)
vanilla_dome_1_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_tile, None)
vanilla_dome_1_region = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_region, None)
vanilla_dome_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_exit_1,
[LocationName.vanilla_dome_1_exit_1])
vanilla_dome_1_exit_2 = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_exit_2,
[LocationName.vanilla_dome_1_exit_2])
vanilla_dome_2_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_tile, None)
vanilla_dome_2_region = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_region, None)
vanilla_dome_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_exit_1,
[LocationName.vanilla_dome_2_exit_1])
vanilla_dome_2_exit_2 = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_exit_2,
[LocationName.vanilla_dome_2_exit_2])
vanilla_dome_3_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_tile, None)
vanilla_dome_3_region = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, None)
vanilla_dome_3_exit_1 = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_exit_1,
[LocationName.vanilla_dome_3_exit_1])
vanilla_dome_4_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_tile, None)
vanilla_dome_4_region = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_region, None)
vanilla_dome_4_exit_1 = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_exit_1,
[LocationName.vanilla_dome_4_exit_1])
vanilla_secret_1_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_1_tile, None)
vanilla_secret_1_region = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_1_region, None)
vanilla_secret_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_1_exit_1,
[LocationName.vanilla_secret_1_exit_1])
vanilla_secret_1_exit_2 = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_1_exit_2,
[LocationName.vanilla_secret_1_exit_2])
vanilla_secret_2_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_tile, None)
vanilla_secret_2_region = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, None)
vanilla_secret_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_exit_1,
[LocationName.vanilla_secret_2_exit_1])
vanilla_secret_3_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_3_tile, None)
vanilla_secret_3_region = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_3_region, None)
vanilla_secret_3_exit_1 = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_3_exit_1,
[LocationName.vanilla_secret_3_exit_1])
vanilla_ghost_house_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_ghost_house_tile, None)
vanilla_ghost_house_region = create_region(multiworld, player, active_locations, LocationName.vanilla_ghost_house_region, None)
vanilla_ghost_house_exit_1 = create_region(multiworld, player, active_locations, LocationName.vanilla_ghost_house_exit_1,
[LocationName.vanilla_ghost_house_exit_1])
vanilla_fortress_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_fortress_tile, None)
vanilla_fortress_region = create_region(multiworld, player, active_locations, LocationName.vanilla_fortress_region, None)
vanilla_fortress = create_region(multiworld, player, active_locations, LocationName.vanilla_fortress,
[LocationName.vanilla_fortress, LocationName.vanilla_reznor])
vanilla_dome_castle_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_castle_tile, None)
vanilla_dome_castle_region = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_castle_region, None)
vanilla_dome_castle = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_castle,
[LocationName.vanilla_dome_castle, LocationName.vanilla_dome_koopaling])
red_switch_palace_tile = create_region(multiworld, player, active_locations, LocationName.red_switch_palace_tile, None)
red_switch_palace = create_region(multiworld, player, active_locations, LocationName.red_switch_palace,
[LocationName.red_switch_palace])
butter_bridge_1_tile = create_region(multiworld, player, active_locations, LocationName.butter_bridge_1_tile, None)
butter_bridge_1_region = create_region(multiworld, player, active_locations, LocationName.butter_bridge_1_region, None)
butter_bridge_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.butter_bridge_1_exit_1,
[LocationName.butter_bridge_1_exit_1])
butter_bridge_2_tile = create_region(multiworld, player, active_locations, LocationName.butter_bridge_2_tile, None)
butter_bridge_2_region = create_region(multiworld, player, active_locations, LocationName.butter_bridge_2_region, None)
butter_bridge_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.butter_bridge_2_exit_1,
[LocationName.butter_bridge_2_exit_1])
cheese_bridge_tile = create_region(multiworld, player, active_locations, LocationName.cheese_bridge_tile, None)
cheese_bridge_region = create_region(multiworld, player, active_locations, LocationName.cheese_bridge_region, None)
cheese_bridge_exit_1 = create_region(multiworld, player, active_locations, LocationName.cheese_bridge_exit_1,
[LocationName.cheese_bridge_exit_1])
cheese_bridge_exit_2 = create_region(multiworld, player, active_locations, LocationName.cheese_bridge_exit_2,
[LocationName.cheese_bridge_exit_2])
cookie_mountain_tile = create_region(multiworld, player, active_locations, LocationName.cookie_mountain_tile, None)
cookie_mountain_region = create_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, None)
cookie_mountain_exit_1 = create_region(multiworld, player, active_locations, LocationName.cookie_mountain_exit_1,
[LocationName.cookie_mountain_exit_1])
soda_lake_tile = create_region(multiworld, player, active_locations, LocationName.soda_lake_tile, None)
soda_lake_region = create_region(multiworld, player, active_locations, LocationName.soda_lake_region, None)
soda_lake_exit_1 = create_region(multiworld, player, active_locations, LocationName.soda_lake_exit_1,
[LocationName.soda_lake_exit_1])
twin_bridges_castle_tile = create_region(multiworld, player, active_locations, LocationName.twin_bridges_castle_tile, None)
twin_bridges_castle_region = create_region(multiworld, player, active_locations, LocationName.twin_bridges_castle_region, None)
twin_bridges_castle = create_region(multiworld, player, active_locations, LocationName.twin_bridges_castle,
[LocationName.twin_bridges_castle, LocationName.twin_bridges_koopaling])
forest_of_illusion_1_tile = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_1_tile, None)
forest_of_illusion_1_region = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_1_region, None)
forest_of_illusion_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_1_exit_1,
[LocationName.forest_of_illusion_1_exit_1])
forest_of_illusion_1_exit_2 = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_1_exit_2,
[LocationName.forest_of_illusion_1_exit_2])
forest_of_illusion_2_tile = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_2_tile, None)
forest_of_illusion_2_region = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_2_region, None)
forest_of_illusion_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_2_exit_1,
[LocationName.forest_of_illusion_2_exit_1])
forest_of_illusion_2_exit_2 = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_2_exit_2,
[LocationName.forest_of_illusion_2_exit_2])
forest_of_illusion_3_tile = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_tile, None)
forest_of_illusion_3_region = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, None)
forest_of_illusion_3_exit_1 = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_exit_1,
[LocationName.forest_of_illusion_3_exit_1])
forest_of_illusion_3_exit_2 = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_exit_2,
[LocationName.forest_of_illusion_3_exit_2])
forest_of_illusion_4_tile = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_tile, None)
forest_of_illusion_4_region = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_region, None)
forest_of_illusion_4_exit_1 = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_exit_1,
[LocationName.forest_of_illusion_4_exit_1])
forest_of_illusion_4_exit_2 = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_exit_2,
[LocationName.forest_of_illusion_4_exit_2])
forest_ghost_house_tile = create_region(multiworld, player, active_locations, LocationName.forest_ghost_house_tile, None)
forest_ghost_house_region = create_region(multiworld, player, active_locations, LocationName.forest_ghost_house_region, None)
forest_ghost_house_exit_1 = create_region(multiworld, player, active_locations, LocationName.forest_ghost_house_exit_1,
[LocationName.forest_ghost_house_exit_1])
forest_ghost_house_exit_2 = create_region(multiworld, player, active_locations, LocationName.forest_ghost_house_exit_2,
[LocationName.forest_ghost_house_exit_2])
forest_secret_tile = create_region(multiworld, player, active_locations, LocationName.forest_secret_tile, None)
forest_secret_region = create_region(multiworld, player, active_locations, LocationName.forest_secret_region, None)
forest_secret_exit_1 = create_region(multiworld, player, active_locations, LocationName.forest_secret_exit_1,
[LocationName.forest_secret_exit_1])
forest_fortress_tile = create_region(multiworld, player, active_locations, LocationName.forest_fortress_tile, None)
forest_fortress_region = create_region(multiworld, player, active_locations, LocationName.forest_fortress_region, None)
forest_fortress = create_region(multiworld, player, active_locations, LocationName.forest_fortress,
[LocationName.forest_fortress, LocationName.forest_reznor])
forest_castle_tile = create_region(multiworld, player, active_locations, LocationName.forest_castle_tile, None)
forest_castle_region = create_region(multiworld, player, active_locations, LocationName.forest_castle_region, None)
forest_castle = create_region(multiworld, player, active_locations, LocationName.forest_castle,
[LocationName.forest_castle, LocationName.forest_koopaling])
blue_switch_palace_tile = create_region(multiworld, player, active_locations, LocationName.blue_switch_palace_tile, None)
blue_switch_palace = create_region(multiworld, player, active_locations, LocationName.blue_switch_palace,
[LocationName.blue_switch_palace])
chocolate_island_1_tile = create_region(multiworld, player, active_locations, LocationName.chocolate_island_1_tile, None)
chocolate_island_1_region = create_region(multiworld, player, active_locations, LocationName.chocolate_island_1_region, None)
chocolate_island_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.chocolate_island_1_exit_1,
[LocationName.chocolate_island_1_exit_1])
chocolate_island_2_tile = create_region(multiworld, player, active_locations, LocationName.chocolate_island_2_tile, None)
chocolate_island_2_region = create_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, None)
chocolate_island_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.chocolate_island_2_exit_1,
[LocationName.chocolate_island_2_exit_1])
chocolate_island_2_exit_2 = create_region(multiworld, player, active_locations, LocationName.chocolate_island_2_exit_2,
[LocationName.chocolate_island_2_exit_2])
chocolate_island_3_tile = create_region(multiworld, player, active_locations, LocationName.chocolate_island_3_tile, None)
chocolate_island_3_region = create_region(multiworld, player, active_locations, LocationName.chocolate_island_3_region, None)
chocolate_island_3_exit_1 = create_region(multiworld, player, active_locations, LocationName.chocolate_island_3_exit_1,
[LocationName.chocolate_island_3_exit_1])
chocolate_island_3_exit_2 = create_region(multiworld, player, active_locations, LocationName.chocolate_island_3_exit_2,
[LocationName.chocolate_island_3_exit_2])
chocolate_island_4_tile = create_region(multiworld, player, active_locations, LocationName.chocolate_island_4_tile, None)
chocolate_island_4_region = create_region(multiworld, player, active_locations, LocationName.chocolate_island_4_region, None)
chocolate_island_4_exit_1 = create_region(multiworld, player, active_locations, LocationName.chocolate_island_4_exit_1,
[LocationName.chocolate_island_4_exit_1])
chocolate_island_5_tile = create_region(multiworld, player, active_locations, LocationName.chocolate_island_5_tile, None)
chocolate_island_5_region = create_region(multiworld, player, active_locations, LocationName.chocolate_island_5_region, None)
chocolate_island_5_exit_1 = create_region(multiworld, player, active_locations, LocationName.chocolate_island_5_exit_1,
[LocationName.chocolate_island_5_exit_1])
chocolate_ghost_house_tile = create_region(multiworld, player, active_locations, LocationName.chocolate_ghost_house_tile, None)
chocolate_ghost_house_region = create_region(multiworld, player, active_locations, LocationName.chocolate_ghost_house_region, None)
chocolate_ghost_house_exit_1 = create_region(multiworld, player, active_locations, LocationName.chocolate_ghost_house_exit_1,
[LocationName.chocolate_ghost_house_exit_1])
chocolate_secret_tile = create_region(multiworld, player, active_locations, LocationName.chocolate_secret_tile, None)
chocolate_secret_region = create_region(multiworld, player, active_locations, LocationName.chocolate_secret_region, None)
chocolate_secret_exit_1 = create_region(multiworld, player, active_locations, LocationName.chocolate_secret_exit_1,
[LocationName.chocolate_secret_exit_1])
chocolate_fortress_tile = create_region(multiworld, player, active_locations, LocationName.chocolate_fortress_tile, None)
chocolate_fortress_region = create_region(multiworld, player, active_locations, LocationName.chocolate_fortress_region, None)
chocolate_fortress = create_region(multiworld, player, active_locations, LocationName.chocolate_fortress,
[LocationName.chocolate_fortress, LocationName.chocolate_reznor])
chocolate_castle_tile = create_region(multiworld, player, active_locations, LocationName.chocolate_castle_tile, None)
chocolate_castle_region = create_region(multiworld, player, active_locations, LocationName.chocolate_castle_region, None)
chocolate_castle = create_region(multiworld, player, active_locations, LocationName.chocolate_castle,
[LocationName.chocolate_castle, LocationName.chocolate_koopaling])
sunken_ghost_ship_tile = create_region(multiworld, player, active_locations, LocationName.sunken_ghost_ship_tile, None)
sunken_ghost_ship_region = create_region(multiworld, player, active_locations, LocationName.sunken_ghost_ship_region, None)
sunken_ghost_ship = create_region(multiworld, player, active_locations, LocationName.sunken_ghost_ship,
[LocationName.sunken_ghost_ship])
valley_of_bowser_1_tile = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_1_tile, None)
valley_of_bowser_1_region = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_1_region, None)
valley_of_bowser_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_1_exit_1,
[LocationName.valley_of_bowser_1_exit_1])
valley_of_bowser_2_tile = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_2_tile, None)
valley_of_bowser_2_region = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_2_region, None)
valley_of_bowser_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_2_exit_1,
[LocationName.valley_of_bowser_2_exit_1])
valley_of_bowser_2_exit_2 = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_2_exit_2,
[LocationName.valley_of_bowser_2_exit_2])
valley_of_bowser_3_tile = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_3_tile, None)
valley_of_bowser_3_region = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_3_region, None)
valley_of_bowser_3_exit_1 = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_3_exit_1,
[LocationName.valley_of_bowser_3_exit_1])
valley_of_bowser_4_tile = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_4_tile, None)
valley_of_bowser_4_region = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_4_region, None)
valley_of_bowser_4_exit_1 = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_4_exit_1,
[LocationName.valley_of_bowser_4_exit_1])
valley_of_bowser_4_exit_2 = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_4_exit_2,
[LocationName.valley_of_bowser_4_exit_2])
valley_ghost_house_tile = create_region(multiworld, player, active_locations, LocationName.valley_ghost_house_tile, None)
valley_ghost_house_region = create_region(multiworld, player, active_locations, LocationName.valley_ghost_house_region, None)
valley_ghost_house_exit_1 = create_region(multiworld, player, active_locations, LocationName.valley_ghost_house_exit_1,
[LocationName.valley_ghost_house_exit_1])
valley_ghost_house_exit_2 = create_region(multiworld, player, active_locations, LocationName.valley_ghost_house_exit_2,
[LocationName.valley_ghost_house_exit_2])
valley_fortress_tile = create_region(multiworld, player, active_locations, LocationName.valley_fortress_tile, None)
valley_fortress_region = create_region(multiworld, player, active_locations, LocationName.valley_fortress_region, None)
valley_fortress = create_region(multiworld, player, active_locations, LocationName.valley_fortress,
[LocationName.valley_fortress, LocationName.valley_reznor])
valley_castle_tile = create_region(multiworld, player, active_locations, LocationName.valley_castle_tile, None)
valley_castle_region = create_region(multiworld, player, active_locations, LocationName.valley_castle_region, None)
valley_castle = create_region(multiworld, player, active_locations, LocationName.valley_castle,
[LocationName.valley_castle, LocationName.valley_koopaling])
front_door_tile = create_region(multiworld, player, active_locations, LocationName.front_door_tile, None)
front_door_region = create_region(multiworld, player, active_locations, LocationName.front_door, None)
back_door_tile = create_region(multiworld, player, active_locations, LocationName.back_door_tile, None)
back_door_region = create_region(multiworld, player, active_locations, LocationName.back_door, None)
bowser_region_locations = []
if world.options.goal == "bowser":
bowser_region_locations += [LocationName.bowser]
bowser_region = create_region(multiworld, player, active_locations, LocationName.bowser_region, bowser_region_locations)
donut_plains_star_road = create_region(multiworld, player, active_locations, LocationName.donut_plains_star_road, None)
vanilla_dome_star_road = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_star_road, None)
twin_bridges_star_road = create_region(multiworld, player, active_locations, LocationName.twin_bridges_star_road, None)
forest_star_road = create_region(multiworld, player, active_locations, LocationName.forest_star_road, None)
valley_star_road = create_region(multiworld, player, active_locations, LocationName.valley_star_road, None)
star_road_donut = create_region(multiworld, player, active_locations, LocationName.star_road_donut, None)
star_road_vanilla = create_region(multiworld, player, active_locations, LocationName.star_road_vanilla, None)
star_road_twin_bridges = create_region(multiworld, player, active_locations, LocationName.star_road_twin_bridges, None)
star_road_forest = create_region(multiworld, player, active_locations, LocationName.star_road_forest, None)
star_road_valley = create_region(multiworld, player, active_locations, LocationName.star_road_valley, None)
star_road_special = create_region(multiworld, player, active_locations, LocationName.star_road_special, None)
special_star_road = create_region(multiworld, player, active_locations, LocationName.special_star_road, None)
star_road_1_tile = create_region(multiworld, player, active_locations, LocationName.star_road_1_tile, None)
star_road_1_region = create_region(multiworld, player, active_locations, LocationName.star_road_1_region, None)
star_road_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.star_road_1_exit_1,
[LocationName.star_road_1_exit_1])
star_road_1_exit_2 = create_region(multiworld, player, active_locations, LocationName.star_road_1_exit_2,
[LocationName.star_road_1_exit_2])
star_road_2_tile = create_region(multiworld, player, active_locations, LocationName.star_road_2_tile, None)
star_road_2_region = create_region(multiworld, player, active_locations, LocationName.star_road_2_region, None)
star_road_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.star_road_2_exit_1,
[LocationName.star_road_2_exit_1])
star_road_2_exit_2 = create_region(multiworld, player, active_locations, LocationName.star_road_2_exit_2,
[LocationName.star_road_2_exit_2])
star_road_3_tile = create_region(multiworld, player, active_locations, LocationName.star_road_3_tile, None)
star_road_3_region = create_region(multiworld, player, active_locations, LocationName.star_road_3_region, None)
star_road_3_exit_1 = create_region(multiworld, player, active_locations, LocationName.star_road_3_exit_1,
[LocationName.star_road_3_exit_1])
star_road_3_exit_2 = create_region(multiworld, player, active_locations, LocationName.star_road_3_exit_2,
[LocationName.star_road_3_exit_2])
star_road_4_tile = create_region(multiworld, player, active_locations, LocationName.star_road_4_tile, None)
star_road_4_region = create_region(multiworld, player, active_locations, LocationName.star_road_4_region, None)
star_road_4_exit_1 = create_region(multiworld, player, active_locations, LocationName.star_road_4_exit_1,
[LocationName.star_road_4_exit_1])
star_road_4_exit_2 = create_region(multiworld, player, active_locations, LocationName.star_road_4_exit_2,
[LocationName.star_road_4_exit_2])
star_road_5_tile = create_region(multiworld, player, active_locations, LocationName.star_road_5_tile, None)
star_road_5_region = create_region(multiworld, player, active_locations, LocationName.star_road_5_region, None)
star_road_5_exit_1 = create_region(multiworld, player, active_locations, LocationName.star_road_5_exit_1,
[LocationName.star_road_5_exit_1])
star_road_5_exit_2 = create_region(multiworld, player, active_locations, LocationName.star_road_5_exit_2,
[LocationName.star_road_5_exit_2])
special_zone_1_tile = create_region(multiworld, player, active_locations, LocationName.special_zone_1_tile, None)
special_zone_1_region = create_region(multiworld, player, active_locations, LocationName.special_zone_1_region, None)
special_zone_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.special_zone_1_exit_1,
[LocationName.special_zone_1_exit_1])
special_zone_2_tile = create_region(multiworld, player, active_locations, LocationName.special_zone_2_tile, None)
special_zone_2_region = create_region(multiworld, player, active_locations, LocationName.special_zone_2_region, None)
special_zone_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.special_zone_2_exit_1,
[LocationName.special_zone_2_exit_1])
special_zone_3_tile = create_region(multiworld, player, active_locations, LocationName.special_zone_3_tile, None)
special_zone_3_region = create_region(multiworld, player, active_locations, LocationName.special_zone_3_region, None)
special_zone_3_exit_1 = create_region(multiworld, player, active_locations, LocationName.special_zone_3_exit_1,
[LocationName.special_zone_3_exit_1])
special_zone_4_tile = create_region(multiworld, player, active_locations, LocationName.special_zone_4_tile, None)
special_zone_4_region = create_region(multiworld, player, active_locations, LocationName.special_zone_4_region, None)
special_zone_4_exit_1 = create_region(multiworld, player, active_locations, LocationName.special_zone_4_exit_1,
[LocationName.special_zone_4_exit_1])
special_zone_5_tile = create_region(multiworld, player, active_locations, LocationName.special_zone_5_tile, None)
special_zone_5_region = create_region(multiworld, player, active_locations, LocationName.special_zone_5_region, None)
special_zone_5_exit_1 = create_region(multiworld, player, active_locations, LocationName.special_zone_5_exit_1,
[LocationName.special_zone_5_exit_1])
special_zone_6_tile = create_region(multiworld, player, active_locations, LocationName.special_zone_6_tile, None)
special_zone_6_region = create_region(multiworld, player, active_locations, LocationName.special_zone_6_region, None)
special_zone_6_exit_1 = create_region(multiworld, player, active_locations, LocationName.special_zone_6_exit_1,
[LocationName.special_zone_6_exit_1])
special_zone_7_tile = create_region(multiworld, player, active_locations, LocationName.special_zone_7_tile, None)
special_zone_7_region = create_region(multiworld, player, active_locations, LocationName.special_zone_7_region, None)
special_zone_7_exit_1 = create_region(multiworld, player, active_locations, LocationName.special_zone_7_exit_1,
[LocationName.special_zone_7_exit_1])
special_zone_8_tile = create_region(multiworld, player, active_locations, LocationName.special_zone_8_tile, None)
special_zone_8_region = create_region(multiworld, player, active_locations, LocationName.special_zone_8_region, None)
special_zone_8_exit_1 = create_region(multiworld, player, active_locations, LocationName.special_zone_8_exit_1,
[LocationName.special_zone_8_exit_1])
special_complete = create_region(multiworld, player, active_locations, LocationName.special_complete, None)
# Set up the regions correctly.
multiworld.regions += [
menu_region,
yoshis_island_region,
yoshis_house_tile,
yoshis_house_region,
yoshis_island_1_tile,
yoshis_island_1_region,
yoshis_island_1_exit_1,
yoshis_island_2_tile,
yoshis_island_2_region,
yoshis_island_2_exit_1,
yoshis_island_3_tile,
yoshis_island_3_region,
yoshis_island_3_exit_1,
yoshis_island_4_tile,
yoshis_island_4_region,
yoshis_island_4_exit_1,
yoshis_island_castle_tile,
yoshis_island_castle_region,
yoshis_island_castle,
yellow_switch_palace_tile,
yellow_switch_palace,
donut_plains_1_tile,
donut_plains_1_region,
donut_plains_1_exit_1,
donut_plains_1_exit_2,
donut_plains_2_tile,
donut_plains_2_region,
donut_plains_2_exit_1,
donut_plains_2_exit_2,
donut_plains_3_tile,
donut_plains_3_region,
donut_plains_3_exit_1,
donut_plains_4_tile,
donut_plains_4_region,
donut_plains_4_exit_1,
donut_secret_1_tile,
donut_secret_1_region,
donut_secret_1_exit_1,
donut_secret_1_exit_2,
donut_secret_2_tile,
donut_secret_2_region,
donut_secret_2_exit_1,
donut_ghost_house_tile,
donut_ghost_house_region,
donut_ghost_house_exit_1,
donut_ghost_house_exit_2,
donut_secret_house_tile,
donut_secret_house_region,
donut_secret_house_exit_1,
donut_secret_house_exit_2,
donut_plains_castle_tile,
donut_plains_castle_region,
donut_plains_castle,
green_switch_palace_tile,
green_switch_palace,
donut_plains_top_secret_tile,
donut_plains_top_secret,
vanilla_dome_1_tile,
vanilla_dome_1_region,
vanilla_dome_1_exit_1,
vanilla_dome_1_exit_2,
vanilla_dome_2_tile,
vanilla_dome_2_region,
vanilla_dome_2_exit_1,
vanilla_dome_2_exit_2,
vanilla_dome_3_tile,
vanilla_dome_3_region,
vanilla_dome_3_exit_1,
vanilla_dome_4_tile,
vanilla_dome_4_region,
vanilla_dome_4_exit_1,
vanilla_secret_1_tile,
vanilla_secret_1_region,
vanilla_secret_1_exit_1,
vanilla_secret_1_exit_2,
vanilla_secret_2_tile,
vanilla_secret_2_region,
vanilla_secret_2_exit_1,
vanilla_secret_3_tile,
vanilla_secret_3_region,
vanilla_secret_3_exit_1,
vanilla_ghost_house_tile,
vanilla_ghost_house_region,
vanilla_ghost_house_exit_1,
vanilla_fortress_tile,
vanilla_fortress_region,
vanilla_fortress,
vanilla_dome_castle_tile,
vanilla_dome_castle_region,
vanilla_dome_castle,
red_switch_palace_tile,
red_switch_palace,
butter_bridge_1_tile,
butter_bridge_1_region,
butter_bridge_1_exit_1,
butter_bridge_2_tile,
butter_bridge_2_region,
butter_bridge_2_exit_1,
cheese_bridge_tile,
cheese_bridge_region,
cheese_bridge_exit_1,
cheese_bridge_exit_2,
cookie_mountain_tile,
cookie_mountain_region,
cookie_mountain_exit_1,
soda_lake_tile,
soda_lake_region,
soda_lake_exit_1,
twin_bridges_castle_tile,
twin_bridges_castle_region,
twin_bridges_castle,
forest_of_illusion_1_tile,
forest_of_illusion_1_region,
forest_of_illusion_1_exit_1,
forest_of_illusion_1_exit_2,
forest_of_illusion_2_tile,
forest_of_illusion_2_region,
forest_of_illusion_2_exit_1,
forest_of_illusion_2_exit_2,
forest_of_illusion_3_tile,
forest_of_illusion_3_region,
forest_of_illusion_3_exit_1,
forest_of_illusion_3_exit_2,
forest_of_illusion_4_tile,
forest_of_illusion_4_region,
forest_of_illusion_4_exit_1,
forest_of_illusion_4_exit_2,
forest_ghost_house_tile,
forest_ghost_house_region,
forest_ghost_house_exit_1,
forest_ghost_house_exit_2,
forest_secret_tile,
forest_secret_region,
forest_secret_exit_1,
forest_fortress_tile,
forest_fortress_region,
forest_fortress,
forest_castle_tile,
forest_castle_region,
forest_castle,
blue_switch_palace_tile,
blue_switch_palace,
chocolate_island_1_tile,
chocolate_island_1_region,
chocolate_island_1_exit_1,
chocolate_island_2_tile,
chocolate_island_2_region,
chocolate_island_2_exit_1,
chocolate_island_2_exit_2,
chocolate_island_3_tile,
chocolate_island_3_region,
chocolate_island_3_exit_1,
chocolate_island_3_exit_2,
chocolate_island_4_tile,
chocolate_island_4_region,
chocolate_island_4_exit_1,
chocolate_island_5_tile,
chocolate_island_5_region,
chocolate_island_5_exit_1,
chocolate_ghost_house_tile,
chocolate_ghost_house_region,
chocolate_ghost_house_exit_1,
chocolate_secret_tile,
chocolate_secret_region,
chocolate_secret_exit_1,
chocolate_fortress_tile,
chocolate_fortress_region,
chocolate_fortress,
chocolate_castle_tile,
chocolate_castle_region,
chocolate_castle,
sunken_ghost_ship_tile,
sunken_ghost_ship_region,
sunken_ghost_ship,
valley_of_bowser_1_tile,
valley_of_bowser_1_region,
valley_of_bowser_1_exit_1,
valley_of_bowser_2_tile,
valley_of_bowser_2_region,
valley_of_bowser_2_exit_1,
valley_of_bowser_2_exit_2,
valley_of_bowser_3_tile,
valley_of_bowser_3_region,
valley_of_bowser_3_exit_1,
valley_of_bowser_4_tile,
valley_of_bowser_4_region,
valley_of_bowser_4_exit_1,
valley_of_bowser_4_exit_2,
valley_ghost_house_tile,
valley_ghost_house_region,
valley_ghost_house_exit_1,
valley_ghost_house_exit_2,
valley_fortress_tile,
valley_fortress_region,
valley_fortress,
valley_castle_tile,
valley_castle_region,
valley_castle,
front_door_tile,
front_door_region,
back_door_tile,
back_door_region,
bowser_region,
donut_plains_star_road,
vanilla_dome_star_road,
twin_bridges_star_road,
forest_star_road,
valley_star_road,
star_road_donut,
star_road_vanilla,
star_road_twin_bridges,
star_road_forest,
star_road_valley,
star_road_special,
special_star_road,
star_road_1_tile,
star_road_1_region,
star_road_1_exit_1,
star_road_1_exit_2,
star_road_2_tile,
star_road_2_region,
star_road_2_exit_1,
star_road_2_exit_2,
star_road_3_tile,
star_road_3_region,
star_road_3_exit_1,
star_road_3_exit_2,
star_road_4_tile,
star_road_4_region,
star_road_4_exit_1,
star_road_4_exit_2,
star_road_5_tile,
star_road_5_region,
star_road_5_exit_1,
star_road_5_exit_2,
special_zone_1_tile,
special_zone_1_region,
special_zone_1_exit_1,
special_zone_2_tile,
special_zone_2_region,
special_zone_2_exit_1,
special_zone_3_tile,
special_zone_3_region,
special_zone_3_exit_1,
special_zone_4_tile,
special_zone_4_region,
special_zone_4_exit_1,
special_zone_5_tile,
special_zone_5_region,
special_zone_5_exit_1,
special_zone_6_tile,
special_zone_6_region,
special_zone_6_exit_1,
special_zone_7_tile,
special_zone_7_region,
special_zone_7_exit_1,
special_zone_8_tile,
special_zone_8_region,
special_zone_8_exit_1,
special_complete,
]
if world.options.dragon_coin_checks:
add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_1_region, LocationName.yoshis_island_1_dragon,
lambda state: (state.has(ItemName.mario_spin_jump, player) and
state.has(ItemName.progressive_powerup, player, 1)))
add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, LocationName.yoshis_island_2_dragon,
lambda state: (state.has(ItemName.yoshi_activate, player) or
state.has(ItemName.mario_climb, player)))
add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_dragon,
lambda state: state.has(ItemName.p_switch, player))
add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_4_region, LocationName.yoshis_island_4_dragon,
lambda state: (state.has(ItemName.yoshi_activate, player) or
state.has(ItemName.mario_swim, player) or
(state.has(ItemName.mario_carry, player) and state.has(ItemName.p_switch, player))))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_dragon,
lambda state: (state.has(ItemName.mario_climb, player) or
state.has(ItemName.yoshi_activate, player) or
(state.has(ItemName.progressive_powerup, player, 3) and state.has(ItemName.mario_run, player))))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_dragon)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_3_region, LocationName.donut_plains_3_dragon,
lambda state: ((state.has(ItemName.mario_spin_jump, player) and state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_climb, player) or
state.has(ItemName.yoshi_activate, player) or
(state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_4_region, LocationName.donut_plains_4_dragon)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_dragon,
lambda state: state.has(ItemName.mario_swim, player))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_2_region, LocationName.donut_secret_2_dragon,
lambda state: (state.has(ItemName.mario_climb, player) or state.has(ItemName.yoshi_activate, player)))
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_region, LocationName.vanilla_dome_1_dragon,
lambda state: (state.has(ItemName.mario_carry, player) and
state.has(ItemName.mario_run, player) and
(state.has(ItemName.super_star_active, player) or
state.has(ItemName.progressive_powerup, player, 1))))
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_region, LocationName.vanilla_dome_2_dragon,
lambda state: (state.has(ItemName.mario_swim, player) and
state.has(ItemName.p_switch, player) and
(state.has(ItemName.mario_climb, player) or state.has(ItemName.yoshi_activate, player))))
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_dragon)
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_region, LocationName.vanilla_dome_4_dragon)
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_1_region, LocationName.vanilla_secret_1_dragon,
lambda state: (state.has(ItemName.mario_climb, player) and
state.has(ItemName.mario_carry, player)))
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_dragon,
lambda state: (state.has(ItemName.mario_run, player) and
state.has(ItemName.progressive_powerup, player, 3)))
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_3_region, LocationName.vanilla_secret_3_dragon,
lambda state: state.has(ItemName.mario_swim, player))
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_ghost_house_region, LocationName.vanilla_ghost_house_dragon,
lambda state: state.has(ItemName.mario_climb, player))
add_location_to_region(multiworld, player, active_locations, LocationName.butter_bridge_1_region, LocationName.butter_bridge_1_dragon)
add_location_to_region(multiworld, player, active_locations, LocationName.butter_bridge_2_region, LocationName.butter_bridge_2_dragon,
lambda state: (state.has(ItemName.mario_run, player) and
state.has(ItemName.progressive_powerup, player, 3)))
add_location_to_region(multiworld, player, active_locations, LocationName.cheese_bridge_region, LocationName.cheese_bridge_dragon,
lambda state: (state.has(ItemName.yoshi_activate, player) or
state.has(ItemName.mario_climb, player)))
add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_dragon,
lambda state: (state.has(ItemName.yoshi_activate, player) or
state.has(ItemName.mario_climb, player)))
add_location_to_region(multiworld, player, active_locations, LocationName.soda_lake_region, LocationName.soda_lake_dragon,
lambda state: state.has(ItemName.mario_swim, player))
add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_2_region, LocationName.forest_of_illusion_2_dragon,
lambda state: state.has(ItemName.mario_swim, player))
add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_dragon,
lambda state: (state.has(ItemName.yoshi_activate, player) or
state.has(ItemName.mario_carry, player)))
add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_region, LocationName.forest_of_illusion_4_dragon,
lambda state: (state.has(ItemName.yoshi_activate, player) or
state.has(ItemName.mario_carry, player) or
state.has(ItemName.p_switch, player) or
state.has(ItemName.progressive_powerup, player, 2)))
add_location_to_region(multiworld, player, active_locations, LocationName.forest_ghost_house_region, LocationName.forest_ghost_house_dragon,
lambda state: state.has(ItemName.p_switch, player))
add_location_to_region(multiworld, player, active_locations, LocationName.forest_secret_region, LocationName.forest_secret_dragon)
add_location_to_region(multiworld, player, active_locations, LocationName.forest_castle_region, LocationName.forest_castle_dragon)
add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_1_region, LocationName.chocolate_island_1_dragon,
lambda state: state.has(ItemName.p_switch, player))
add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_dragon,
lambda state: (state.has(ItemName.blue_switch_palace, player) and
(state.has(ItemName.p_switch, player) or
state.has(ItemName.green_switch_palace, player) or
(state.has(ItemName.yellow_switch_palace, player) or state.has(ItemName.red_switch_palace, player)))))
add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_3_region, LocationName.chocolate_island_3_dragon)
add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_4_region, LocationName.chocolate_island_4_dragon,
lambda state: (state.has(ItemName.p_switch, player) and
state.has(ItemName.progressive_powerup, player, 3)))
add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_5_region, LocationName.chocolate_island_5_dragon,
lambda state: (state.has(ItemName.mario_carry, player) and state.has(ItemName.p_switch, player)))
add_location_to_region(multiworld, player, active_locations, LocationName.sunken_ghost_ship_region, LocationName.sunken_ghost_ship_dragon,
lambda state: (state.has(ItemName.mario_swim, player) and
state.has(ItemName.super_star_active, player) and
state.has(ItemName.progressive_powerup, player, 3)))
add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_1_region, LocationName.valley_of_bowser_1_dragon)
add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_2_region, LocationName.valley_of_bowser_2_dragon,
lambda state: state.has(ItemName.yoshi_activate, player))
add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_3_region, LocationName.valley_of_bowser_3_dragon)
add_location_to_region(multiworld, player, active_locations, LocationName.valley_ghost_house_region, LocationName.valley_ghost_house_dragon,
lambda state: state.has(ItemName.p_switch, player))
add_location_to_region(multiworld, player, active_locations, LocationName.valley_castle_region, LocationName.valley_castle_dragon)
add_location_to_region(multiworld, player, active_locations, LocationName.star_road_1_region, LocationName.star_road_1_dragon,
lambda state: (state.has(ItemName.mario_spin_jump, player) and
state.has(ItemName.progressive_powerup, player, 1)))
add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_dragon,
lambda state: state.has(ItemName.mario_climb, player))
add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_2_region, LocationName.special_zone_2_dragon,
lambda state: state.has(ItemName.p_balloon, player))
add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_3_region, LocationName.special_zone_3_dragon,
lambda state: state.has(ItemName.yoshi_activate, player))
add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_4_region, LocationName.special_zone_4_dragon,
lambda state: state.has(ItemName.progressive_powerup, player, 1))
add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_5_region, LocationName.special_zone_5_dragon,
lambda state: state.has(ItemName.progressive_powerup, player, 1))
add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_dragon,
lambda state: state.has(ItemName.mario_swim, player))
add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_7_region, LocationName.special_zone_7_dragon,
lambda state: state.has(ItemName.progressive_powerup, player, 1))
add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_dragon,
lambda state: ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player)) or
state.has(ItemName.progressive_powerup, player, 3) or
state.has(ItemName.yoshi_activate, player) or
state.has(ItemName.mario_carry, player)))
if world.options.moon_checks:
add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_1_region, LocationName.yoshis_island_1_moon,
lambda state: ((state.has(ItemName.mario_run, player) and
state.has(ItemName.progressive_powerup, player, 3)) or
state.has(ItemName.yoshi_activate, player)))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_4_region, LocationName.donut_plains_4_moon,
lambda state: (state.has(ItemName.mario_run, player) and
state.has(ItemName.progressive_powerup, player, 3)))
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_moon,
lambda state: (state.has(ItemName.mario_run, player) and
state.has(ItemName.progressive_powerup, player, 3)))
add_location_to_region(multiworld, player, active_locations, LocationName.cheese_bridge_region, LocationName.cheese_bridge_moon,
lambda state: (state.has(ItemName.mario_run, player) and
(state.has(ItemName.progressive_powerup, player, 3) or
state.has(ItemName.yoshi_activate, player))))
add_location_to_region(multiworld, player, active_locations, LocationName.forest_ghost_house_region, LocationName.forest_ghost_house_moon,
lambda state: state.has(ItemName.p_switch, player))
add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_1_region, LocationName.chocolate_island_1_moon,
lambda state: ((state.has(ItemName.mario_run, player) and
state.has(ItemName.progressive_powerup, player, 3)) or
state.has(ItemName.yoshi_activate, player)))
add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_1_region, LocationName.valley_of_bowser_1_moon)
if world.options.hidden_1up_checks:
add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_4_region, LocationName.yoshis_island_4_hidden_1up,
lambda state: (state.has(ItemName.yoshi_activate, player) or
(state.has(ItemName.mario_run, player, player) and
state.has(ItemName.progressive_powerup, player, 3))))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_hidden_1up)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_4_region, LocationName.donut_plains_4_hidden_1up,
lambda state: (state.has(ItemName.mario_run, player) and
state.has(ItemName.progressive_powerup, player, 3)))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_hidden_1up)
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_ghost_house_region, LocationName.vanilla_ghost_house_hidden_1up)
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_region, LocationName.vanilla_dome_4_hidden_1up)
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_fortress_region, LocationName.vanilla_fortress_hidden_1up,
lambda state: state.has(ItemName.mario_swim, player))
add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_hidden_1up,
lambda state: (state.has(ItemName.mario_swim, player) or
state.has(ItemName.yoshi_activate, player) or
(state.has(ItemName.mario_run, player, player) and
state.has(ItemName.progressive_powerup, player, 3))))
add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_hidden_1up,
lambda state: (state.has(ItemName.mario_carry, player) or
state.has(ItemName.yoshi_activate, player)))
add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_hidden_1up)
add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_castle_region, LocationName.chocolate_castle_hidden_1up,
lambda state: (state.has(ItemName.progressive_powerup, player, 1)))
add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_2_region, LocationName.valley_of_bowser_2_hidden_1up)
add_location_to_region(multiworld, player, active_locations, LocationName.valley_castle_region, LocationName.valley_castle_hidden_1up)
add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_hidden_1up,
lambda state: state.has(ItemName.mario_climb, player))
if world.options.bonus_block_checks:
add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_bonus_block)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_3_region, LocationName.donut_plains_3_bonus_block)
add_location_to_region(multiworld, player, active_locations, LocationName.butter_bridge_1_region, LocationName.butter_bridge_1_bonus_block)
add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_3_region, LocationName.chocolate_island_3_bonus_block)
if world.options.blocksanity:
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_yoshi_block_1)
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_green_block_1,
lambda state:( ((state.has(ItemName.green_switch_palace, player) and state.has(ItemName.mario_carry, player))) or ((state.has(ItemName.green_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))))
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_powerup_block_1)
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_powerup_block_2)
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_multi_coin_block_1)
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_gray_pow_block_1)
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_coin_block_1)
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_coin_block_2)
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_coin_block_3)
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_coin_block_4)
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_coin_block_5)
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_coin_block_6)
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_3_region, LocationName.vanilla_secret_3_powerup_block_1,
lambda state: state.has(ItemName.mario_swim, player))
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_3_region, LocationName.vanilla_secret_3_powerup_block_2,
lambda state: state.has(ItemName.mario_swim, player))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_ghost_house_region, LocationName.donut_ghost_house_vine_block_1)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_ghost_house_region, LocationName.donut_ghost_house_directional_coin_block_1,
lambda state: state.has(ItemName.p_switch, player))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_ghost_house_region, LocationName.donut_ghost_house_life_block_1,
lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_ghost_house_region, LocationName.donut_ghost_house_life_block_2,
lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_ghost_house_region, LocationName.donut_ghost_house_life_block_3,
lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_ghost_house_region, LocationName.donut_ghost_house_life_block_4,
lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_3_region, LocationName.donut_plains_3_green_block_1,
lambda state: state.has(ItemName.green_switch_palace, player))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_3_region, LocationName.donut_plains_3_coin_block_1)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_3_region, LocationName.donut_plains_3_coin_block_2)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_3_region, LocationName.donut_plains_3_vine_block_1,
lambda state: (state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player)))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_3_region, LocationName.donut_plains_3_powerup_block_1)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_3_region, LocationName.donut_plains_3_bonus_block_1)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_4_region, LocationName.donut_plains_4_coin_block_1)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_4_region, LocationName.donut_plains_4_powerup_block_1)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_4_region, LocationName.donut_plains_4_coin_block_2)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_4_region, LocationName.donut_plains_4_yoshi_block_1)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_yellow_block_1,
lambda state: state.has(ItemName.yellow_switch_palace, player))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_coin_block_1)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_powerup_block_1)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_coin_block_2)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_vine_block_1)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_invis_life_block_1,
lambda state: state.has(ItemName.mario_climb, player))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_coin_block_3)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_coin_block_4)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_coin_block_5)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_green_block_1,
lambda state: state.has(ItemName.green_switch_palace, player))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_coin_block_1)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_coin_block_2)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_coin_block_3)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_yellow_block_1,
lambda state: state.has(ItemName.yellow_switch_palace, player))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_powerup_block_1)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_multi_coin_block_1)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_flying_block_1)
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_green_block_1,
lambda state: state.has(ItemName.green_switch_palace, player))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_yellow_block_2,
lambda state: state.has(ItemName.yellow_switch_palace, player))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_vine_block_1,
lambda state:( ((state.has(ItemName.mario_carry, player) and state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or (state.has(ItemName.yoshi_activate, player))))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_coin_block_1,
lambda state: state.has(ItemName.mario_swim, player))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_coin_block_2,
lambda state: state.has(ItemName.mario_swim, player))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_powerup_block_1,
lambda state: state.has(ItemName.mario_swim, player))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_coin_block_3,
lambda state: state.has(ItemName.mario_swim, player))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_powerup_block_2,
lambda state: state.has(ItemName.mario_swim, player))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_powerup_block_3,
lambda state: (state.has(ItemName.mario_swim, player) and state.has(ItemName.p_balloon, player)))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_life_block_1,
lambda state: (state.has(ItemName.mario_swim, player) and state.has(ItemName.p_balloon, player)))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_powerup_block_4,
lambda state: (state.has(ItemName.mario_swim, player) and state.has(ItemName.p_balloon, player)))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_powerup_block_5,
lambda state: state.has(ItemName.mario_swim, player))
add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_key_block_1,
lambda state: (state.has(ItemName.mario_swim, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.p_switch, player)))
add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_fortress_region, LocationName.vanilla_fortress_powerup_block_1,
lambda state: state.has(ItemName.mario_swim, player))