|
7 | 7 | from Fill import fill_restrictive
|
8 | 8 |
|
9 | 9 | from .Bosses import BossFactory, Boss
|
10 |
| -from .Items import ItemFactory |
| 10 | +from .Items import item_factory |
11 | 11 | from .Regions import lookup_boss_drops, key_drop_data
|
12 | 12 | from .Options import small_key_shuffle
|
13 | 13 |
|
@@ -81,90 +81,90 @@ def make_dungeon(name, default_boss, dungeon_regions, big_key, small_keys, dunge
|
81 | 81 | return dungeon
|
82 | 82 |
|
83 | 83 | ES = make_dungeon('Hyrule Castle', None, ['Hyrule Castle', 'Sewers', 'Sewer Drop', 'Sewers (Dark)', 'Sanctuary'],
|
84 |
| - ItemFactory('Big Key (Hyrule Castle)', player), |
85 |
| - ItemFactory(['Small Key (Hyrule Castle)'] * 4, player), |
86 |
| - [ItemFactory('Map (Hyrule Castle)', player)]) |
| 84 | + item_factory('Big Key (Hyrule Castle)', world), |
| 85 | + item_factory(['Small Key (Hyrule Castle)'] * 4, world), |
| 86 | + [item_factory('Map (Hyrule Castle)', world)]) |
87 | 87 | EP = make_dungeon('Eastern Palace', 'Armos Knights', ['Eastern Palace'],
|
88 |
| - ItemFactory('Big Key (Eastern Palace)', player), |
89 |
| - ItemFactory(['Small Key (Eastern Palace)'] * 2, player), |
90 |
| - ItemFactory(['Map (Eastern Palace)', 'Compass (Eastern Palace)'], player)) |
| 88 | + item_factory('Big Key (Eastern Palace)', world), |
| 89 | + item_factory(['Small Key (Eastern Palace)'] * 2, world), |
| 90 | + item_factory(['Map (Eastern Palace)', 'Compass (Eastern Palace)'], world)) |
91 | 91 | DP = make_dungeon('Desert Palace', 'Lanmolas',
|
92 | 92 | ['Desert Palace North', 'Desert Palace Main (Inner)', 'Desert Palace Main (Outer)',
|
93 |
| - 'Desert Palace East'], ItemFactory('Big Key (Desert Palace)', player), |
94 |
| - ItemFactory(['Small Key (Desert Palace)'] * 4, player), |
95 |
| - ItemFactory(['Map (Desert Palace)', 'Compass (Desert Palace)'], player)) |
| 93 | + 'Desert Palace East'], item_factory('Big Key (Desert Palace)', world), |
| 94 | + item_factory(['Small Key (Desert Palace)'] * 4, world), |
| 95 | + item_factory(['Map (Desert Palace)', 'Compass (Desert Palace)'], world)) |
96 | 96 | ToH = make_dungeon('Tower of Hera', 'Moldorm',
|
97 | 97 | ['Tower of Hera (Bottom)', 'Tower of Hera (Basement)', 'Tower of Hera (Top)'],
|
98 |
| - ItemFactory('Big Key (Tower of Hera)', player), |
99 |
| - [ItemFactory('Small Key (Tower of Hera)', player)], |
100 |
| - ItemFactory(['Map (Tower of Hera)', 'Compass (Tower of Hera)'], player)) |
| 98 | + item_factory('Big Key (Tower of Hera)', world), |
| 99 | + [item_factory('Small Key (Tower of Hera)', world)], |
| 100 | + item_factory(['Map (Tower of Hera)', 'Compass (Tower of Hera)'], world)) |
101 | 101 | PoD = make_dungeon('Palace of Darkness', 'Helmasaur King',
|
102 | 102 | ['Palace of Darkness (Entrance)', 'Palace of Darkness (Center)',
|
103 | 103 | 'Palace of Darkness (Big Key Chest)', 'Palace of Darkness (Bonk Section)',
|
104 | 104 | 'Palace of Darkness (North)', 'Palace of Darkness (Maze)',
|
105 | 105 | 'Palace of Darkness (Harmless Hellway)', 'Palace of Darkness (Final Section)'],
|
106 |
| - ItemFactory('Big Key (Palace of Darkness)', player), |
107 |
| - ItemFactory(['Small Key (Palace of Darkness)'] * 6, player), |
108 |
| - ItemFactory(['Map (Palace of Darkness)', 'Compass (Palace of Darkness)'], player)) |
| 106 | + item_factory('Big Key (Palace of Darkness)', world), |
| 107 | + item_factory(['Small Key (Palace of Darkness)'] * 6, world), |
| 108 | + item_factory(['Map (Palace of Darkness)', 'Compass (Palace of Darkness)'], world)) |
109 | 109 | TT = make_dungeon('Thieves Town', 'Blind', ['Thieves Town (Entrance)', 'Thieves Town (Deep)', 'Blind Fight'],
|
110 |
| - ItemFactory('Big Key (Thieves Town)', player), |
111 |
| - ItemFactory(['Small Key (Thieves Town)'] * 3, player), |
112 |
| - ItemFactory(['Map (Thieves Town)', 'Compass (Thieves Town)'], player)) |
| 110 | + item_factory('Big Key (Thieves Town)', world), |
| 111 | + item_factory(['Small Key (Thieves Town)'] * 3, world), |
| 112 | + item_factory(['Map (Thieves Town)', 'Compass (Thieves Town)'], world)) |
113 | 113 | SW = make_dungeon('Skull Woods', 'Mothula', ['Skull Woods Final Section (Entrance)', 'Skull Woods First Section',
|
114 | 114 | 'Skull Woods Second Section', 'Skull Woods Second Section (Drop)',
|
115 | 115 | 'Skull Woods Final Section (Mothula)',
|
116 | 116 | 'Skull Woods First Section (Right)',
|
117 | 117 | 'Skull Woods First Section (Left)', 'Skull Woods First Section (Top)'],
|
118 |
| - ItemFactory('Big Key (Skull Woods)', player), |
119 |
| - ItemFactory(['Small Key (Skull Woods)'] * 5, player), |
120 |
| - ItemFactory(['Map (Skull Woods)', 'Compass (Skull Woods)'], player)) |
| 118 | + item_factory('Big Key (Skull Woods)', world), |
| 119 | + item_factory(['Small Key (Skull Woods)'] * 5, world), |
| 120 | + item_factory(['Map (Skull Woods)', 'Compass (Skull Woods)'], world)) |
121 | 121 | SP = make_dungeon('Swamp Palace', 'Arrghus',
|
122 | 122 | ['Swamp Palace (Entrance)', 'Swamp Palace (First Room)', 'Swamp Palace (Starting Area)',
|
123 | 123 | 'Swamp Palace (West)', 'Swamp Palace (Center)', 'Swamp Palace (North)'],
|
124 |
| - ItemFactory('Big Key (Swamp Palace)', player), |
125 |
| - ItemFactory(['Small Key (Swamp Palace)'] * 6, player), |
126 |
| - ItemFactory(['Map (Swamp Palace)', 'Compass (Swamp Palace)'], player)) |
| 124 | + item_factory('Big Key (Swamp Palace)', world), |
| 125 | + item_factory(['Small Key (Swamp Palace)'] * 6, world), |
| 126 | + item_factory(['Map (Swamp Palace)', 'Compass (Swamp Palace)'], world)) |
127 | 127 | IP = make_dungeon('Ice Palace', 'Kholdstare',
|
128 | 128 | ['Ice Palace (Entrance)', 'Ice Palace (Second Section)', 'Ice Palace (Main)', 'Ice Palace (East)',
|
129 |
| - 'Ice Palace (East Top)', 'Ice Palace (Kholdstare)'], ItemFactory('Big Key (Ice Palace)', player), |
130 |
| - ItemFactory(['Small Key (Ice Palace)'] * 6, player), |
131 |
| - ItemFactory(['Map (Ice Palace)', 'Compass (Ice Palace)'], player)) |
| 129 | + 'Ice Palace (East Top)', 'Ice Palace (Kholdstare)'], item_factory('Big Key (Ice Palace)', world), |
| 130 | + item_factory(['Small Key (Ice Palace)'] * 6, world), |
| 131 | + item_factory(['Map (Ice Palace)', 'Compass (Ice Palace)'], world)) |
132 | 132 | MM = make_dungeon('Misery Mire', 'Vitreous',
|
133 | 133 | ['Misery Mire (Entrance)', 'Misery Mire (Main)', 'Misery Mire (West)', 'Misery Mire (Final Area)',
|
134 |
| - 'Misery Mire (Vitreous)'], ItemFactory('Big Key (Misery Mire)', player), |
135 |
| - ItemFactory(['Small Key (Misery Mire)'] * 6, player), |
136 |
| - ItemFactory(['Map (Misery Mire)', 'Compass (Misery Mire)'], player)) |
| 134 | + 'Misery Mire (Vitreous)'], item_factory('Big Key (Misery Mire)', world), |
| 135 | + item_factory(['Small Key (Misery Mire)'] * 6, world), |
| 136 | + item_factory(['Map (Misery Mire)', 'Compass (Misery Mire)'], world)) |
137 | 137 | TR = make_dungeon('Turtle Rock', 'Trinexx',
|
138 | 138 | ['Turtle Rock (Entrance)', 'Turtle Rock (First Section)', 'Turtle Rock (Chain Chomp Room)',
|
139 | 139 | 'Turtle Rock (Pokey Room)',
|
140 | 140 | 'Turtle Rock (Second Section)', 'Turtle Rock (Big Chest)', 'Turtle Rock (Crystaroller Room)',
|
141 | 141 | 'Turtle Rock (Dark Room)', 'Turtle Rock (Eye Bridge)', 'Turtle Rock (Trinexx)'],
|
142 |
| - ItemFactory('Big Key (Turtle Rock)', player), |
143 |
| - ItemFactory(['Small Key (Turtle Rock)'] * 6, player), |
144 |
| - ItemFactory(['Map (Turtle Rock)', 'Compass (Turtle Rock)'], player)) |
| 142 | + item_factory('Big Key (Turtle Rock)', world), |
| 143 | + item_factory(['Small Key (Turtle Rock)'] * 6, world), |
| 144 | + item_factory(['Map (Turtle Rock)', 'Compass (Turtle Rock)'], world)) |
145 | 145 |
|
146 | 146 | if multiworld.mode[player] != 'inverted':
|
147 | 147 | AT = make_dungeon('Agahnims Tower', 'Agahnim', ['Agahnims Tower', 'Agahnim 1'], None,
|
148 |
| - ItemFactory(['Small Key (Agahnims Tower)'] * 4, player), []) |
| 148 | + item_factory(['Small Key (Agahnims Tower)'] * 4, world), []) |
149 | 149 | GT = make_dungeon('Ganons Tower', 'Agahnim2',
|
150 | 150 | ['Ganons Tower (Entrance)', 'Ganons Tower (Tile Room)', 'Ganons Tower (Compass Room)',
|
151 | 151 | 'Ganons Tower (Hookshot Room)', 'Ganons Tower (Map Room)', 'Ganons Tower (Firesnake Room)',
|
152 | 152 | 'Ganons Tower (Teleport Room)', 'Ganons Tower (Bottom)', 'Ganons Tower (Top)',
|
153 | 153 | 'Ganons Tower (Before Moldorm)', 'Ganons Tower (Moldorm)', 'Agahnim 2'],
|
154 |
| - ItemFactory('Big Key (Ganons Tower)', player), |
155 |
| - ItemFactory(['Small Key (Ganons Tower)'] * 8, player), |
156 |
| - ItemFactory(['Map (Ganons Tower)', 'Compass (Ganons Tower)'], player)) |
| 154 | + item_factory('Big Key (Ganons Tower)', world), |
| 155 | + item_factory(['Small Key (Ganons Tower)'] * 8, world), |
| 156 | + item_factory(['Map (Ganons Tower)', 'Compass (Ganons Tower)'], world)) |
157 | 157 | else:
|
158 | 158 | AT = make_dungeon('Inverted Agahnims Tower', 'Agahnim', ['Inverted Agahnims Tower', 'Agahnim 1'], None,
|
159 |
| - ItemFactory(['Small Key (Agahnims Tower)'] * 4, player), []) |
| 159 | + item_factory(['Small Key (Agahnims Tower)'] * 4, world), []) |
160 | 160 | GT = make_dungeon('Inverted Ganons Tower', 'Agahnim2',
|
161 | 161 | ['Inverted Ganons Tower (Entrance)', 'Ganons Tower (Tile Room)',
|
162 | 162 | 'Ganons Tower (Compass Room)', 'Ganons Tower (Hookshot Room)', 'Ganons Tower (Map Room)',
|
163 | 163 | 'Ganons Tower (Firesnake Room)', 'Ganons Tower (Teleport Room)', 'Ganons Tower (Bottom)',
|
164 | 164 | 'Ganons Tower (Top)', 'Ganons Tower (Before Moldorm)', 'Ganons Tower (Moldorm)',
|
165 |
| - 'Agahnim 2'], ItemFactory('Big Key (Ganons Tower)', player), |
166 |
| - ItemFactory(['Small Key (Ganons Tower)'] * 8, player), |
167 |
| - ItemFactory(['Map (Ganons Tower)', 'Compass (Ganons Tower)'], player)) |
| 165 | + 'Agahnim 2'], item_factory('Big Key (Ganons Tower)', world), |
| 166 | + item_factory(['Small Key (Ganons Tower)'] * 8, world), |
| 167 | + item_factory(['Map (Ganons Tower)', 'Compass (Ganons Tower)'], world)) |
168 | 168 |
|
169 | 169 | GT.bosses['bottom'] = BossFactory('Armos Knights', player)
|
170 | 170 | GT.bosses['middle'] = BossFactory('Lanmolas', player)
|
@@ -259,7 +259,7 @@ def fill_dungeons_restrictive(multiworld: MultiWorld):
|
259 | 259 | if not key_drop_shuffle and player not in multiworld.groups:
|
260 | 260 | for key_loc in key_drop_data:
|
261 | 261 | key_data = key_drop_data[key_loc]
|
262 |
| - all_state_base.remove(ItemFactory(key_data[3], player)) |
| 262 | + all_state_base.remove(item_factory(key_data[3], multiworld.worlds[player])) |
263 | 263 | loc = multiworld.get_location(key_loc, player)
|
264 | 264 |
|
265 | 265 | if loc in all_state_base.events:
|
|
0 commit comments