Merge branch 'DoorDevVolatile' into StandingItems
# Conflicts: # Rom.py # data/base2current.bps
This commit is contained in:
@@ -109,6 +109,7 @@ def link_entrances(world, player):
|
|||||||
links_house_doors = [i for i in LW_Single_Cave_Doors if i not in Isolated_LH_Doors_Open]
|
links_house_doors = [i for i in LW_Single_Cave_Doors if i not in Isolated_LH_Doors_Open]
|
||||||
links_house = random.choice(links_house_doors)
|
links_house = random.choice(links_house_doors)
|
||||||
connect_two_way(world, links_house, 'Links House Exit', player)
|
connect_two_way(world, links_house, 'Links House Exit', player)
|
||||||
|
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||||
if links_house in bomb_shop_doors:
|
if links_house in bomb_shop_doors:
|
||||||
bomb_shop_doors.remove(links_house)
|
bomb_shop_doors.remove(links_house)
|
||||||
if links_house in blacksmith_doors:
|
if links_house in blacksmith_doors:
|
||||||
@@ -173,6 +174,7 @@ def link_entrances(world, player):
|
|||||||
links_house_doors = [i for i in lw_entrances if i not in Isolated_LH_Doors_Open]
|
links_house_doors = [i for i in lw_entrances if i not in Isolated_LH_Doors_Open]
|
||||||
links_house = random.choice(links_house_doors)
|
links_house = random.choice(links_house_doors)
|
||||||
connect_two_way(world, links_house, 'Links House Exit', player)
|
connect_two_way(world, links_house, 'Links House Exit', player)
|
||||||
|
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||||
if links_house in lw_entrances:
|
if links_house in lw_entrances:
|
||||||
lw_entrances.remove(links_house)
|
lw_entrances.remove(links_house)
|
||||||
|
|
||||||
@@ -337,6 +339,7 @@ def link_entrances(world, player):
|
|||||||
links_house_doors = [i for i in lw_entrances + lw_must_exits if i not in Isolated_LH_Doors_Open]
|
links_house_doors = [i for i in lw_entrances + lw_must_exits if i not in Isolated_LH_Doors_Open]
|
||||||
links_house = random.choice(links_house_doors)
|
links_house = random.choice(links_house_doors)
|
||||||
connect_two_way(world, links_house, 'Links House Exit', player)
|
connect_two_way(world, links_house, 'Links House Exit', player)
|
||||||
|
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||||
if links_house in lw_entrances:
|
if links_house in lw_entrances:
|
||||||
lw_entrances.remove(links_house)
|
lw_entrances.remove(links_house)
|
||||||
if links_house in lw_must_exits:
|
if links_house in lw_must_exits:
|
||||||
@@ -467,6 +470,7 @@ def link_entrances(world, player):
|
|||||||
links_house_doors = [i for i in links_house_doors if i not in exclusions]
|
links_house_doors = [i for i in links_house_doors if i not in exclusions]
|
||||||
links_house = random.choice(list(links_house_doors))
|
links_house = random.choice(list(links_house_doors))
|
||||||
connect_two_way(world, links_house, 'Links House Exit', player)
|
connect_two_way(world, links_house, 'Links House Exit', player)
|
||||||
|
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||||
if links_house in entrances:
|
if links_house in entrances:
|
||||||
entrances.remove(links_house)
|
entrances.remove(links_house)
|
||||||
elif links_house in must_exits:
|
elif links_house in must_exits:
|
||||||
@@ -937,6 +941,7 @@ def link_entrances(world, player):
|
|||||||
links_house_doors = [i for i in links_house_doors if i not in exclusions]
|
links_house_doors = [i for i in links_house_doors if i not in exclusions]
|
||||||
links_house = random.choice(links_house_doors)
|
links_house = random.choice(links_house_doors)
|
||||||
connect_two_way(world, links_house, 'Links House Exit', player)
|
connect_two_way(world, links_house, 'Links House Exit', player)
|
||||||
|
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||||
exit_pool.remove(links_house)
|
exit_pool.remove(links_house)
|
||||||
doors.remove(links_house)
|
doors.remove(links_house)
|
||||||
|
|
||||||
@@ -1301,6 +1306,7 @@ def link_inverted_entrances(world, player):
|
|||||||
links_house_doors = [i for i in DW_Single_Cave_Doors if i not in Inverted_Dark_Sanctuary_Doors + Isolated_LH_Doors]
|
links_house_doors = [i for i in DW_Single_Cave_Doors if i not in Inverted_Dark_Sanctuary_Doors + Isolated_LH_Doors]
|
||||||
links_house = random.choice(links_house_doors)
|
links_house = random.choice(links_house_doors)
|
||||||
connect_two_way(world, links_house, 'Inverted Links House Exit', player)
|
connect_two_way(world, links_house, 'Inverted Links House Exit', player)
|
||||||
|
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||||
if links_house in bomb_shop_doors:
|
if links_house in bomb_shop_doors:
|
||||||
bomb_shop_doors.remove(links_house)
|
bomb_shop_doors.remove(links_house)
|
||||||
if links_house in blacksmith_doors:
|
if links_house in blacksmith_doors:
|
||||||
@@ -1381,6 +1387,7 @@ def link_inverted_entrances(world, player):
|
|||||||
links_house_doors = [i for i in dw_entrances if i not in Inverted_Dark_Sanctuary_Doors + Isolated_LH_Doors]
|
links_house_doors = [i for i in dw_entrances if i not in Inverted_Dark_Sanctuary_Doors + Isolated_LH_Doors]
|
||||||
links_house = random.choice(links_house_doors)
|
links_house = random.choice(links_house_doors)
|
||||||
connect_two_way(world, links_house, 'Inverted Links House Exit', player)
|
connect_two_way(world, links_house, 'Inverted Links House Exit', player)
|
||||||
|
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||||
if links_house in dw_entrances:
|
if links_house in dw_entrances:
|
||||||
dw_entrances.remove(links_house)
|
dw_entrances.remove(links_house)
|
||||||
|
|
||||||
@@ -1510,6 +1517,7 @@ def link_inverted_entrances(world, player):
|
|||||||
links_house_doors = [i for i in dw_entrances if i not in Inverted_Dark_Sanctuary_Doors + Isolated_LH_Doors]
|
links_house_doors = [i for i in dw_entrances if i not in Inverted_Dark_Sanctuary_Doors + Isolated_LH_Doors]
|
||||||
links_house = random.choice(links_house_doors)
|
links_house = random.choice(links_house_doors)
|
||||||
connect_two_way(world, links_house, 'Inverted Links House Exit', player)
|
connect_two_way(world, links_house, 'Inverted Links House Exit', player)
|
||||||
|
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||||
if links_house in dw_entrances:
|
if links_house in dw_entrances:
|
||||||
dw_entrances.remove(links_house)
|
dw_entrances.remove(links_house)
|
||||||
|
|
||||||
@@ -1647,6 +1655,7 @@ def link_inverted_entrances(world, player):
|
|||||||
links_house_doors = [i for i in entrances + must_exits if i not in Inverted_Dark_Sanctuary_Doors + Isolated_LH_Doors]
|
links_house_doors = [i for i in entrances + must_exits if i not in Inverted_Dark_Sanctuary_Doors + Isolated_LH_Doors]
|
||||||
links_house = random.choice(links_house_doors)
|
links_house = random.choice(links_house_doors)
|
||||||
connect_two_way(world, links_house, 'Inverted Links House Exit', player)
|
connect_two_way(world, links_house, 'Inverted Links House Exit', player)
|
||||||
|
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||||
if links_house in entrances:
|
if links_house in entrances:
|
||||||
entrances.remove(links_house)
|
entrances.remove(links_house)
|
||||||
elif links_house in must_exits:
|
elif links_house in must_exits:
|
||||||
@@ -1780,6 +1789,7 @@ def link_inverted_entrances(world, player):
|
|||||||
links_house_doors = [i for i in doors if i not in Inverted_Dark_Sanctuary_Doors + Isolated_LH_Doors]
|
links_house_doors = [i for i in doors if i not in Inverted_Dark_Sanctuary_Doors + Isolated_LH_Doors]
|
||||||
links_house = random.choice(links_house_doors)
|
links_house = random.choice(links_house_doors)
|
||||||
connect_two_way(world, links_house, 'Inverted Links House Exit', player)
|
connect_two_way(world, links_house, 'Inverted Links House Exit', player)
|
||||||
|
connect_exit(world, 'Chris Houlihan Room Exit', links_house, player) # should match link's house
|
||||||
doors.remove(links_house)
|
doors.remove(links_house)
|
||||||
exit_pool.remove(links_house)
|
exit_pool.remove(links_house)
|
||||||
|
|
||||||
@@ -3339,7 +3349,6 @@ inverted_mandatory_connections = [('Links House S&Q', 'Inverted Links House'),
|
|||||||
('EDDM Flute', 'The Sky'),
|
('EDDM Flute', 'The Sky'),
|
||||||
('Dark Grassy Lawn Flute', 'The Sky'),
|
('Dark Grassy Lawn Flute', 'The Sky'),
|
||||||
('Hammer Peg Area Flute', 'The Sky'),
|
('Hammer Peg Area Flute', 'The Sky'),
|
||||||
('Chris Houlihan Room Exit', 'Pyramid Ledge'),
|
|
||||||
('Bush Covered Lawn Inner Bushes', 'Light World'),
|
('Bush Covered Lawn Inner Bushes', 'Light World'),
|
||||||
('Bush Covered Lawn Outer Bushes', 'Bush Covered Lawn'),
|
('Bush Covered Lawn Outer Bushes', 'Bush Covered Lawn'),
|
||||||
('Bush Covered Lawn Mirror Spot', 'Dark Grassy Lawn'),
|
('Bush Covered Lawn Mirror Spot', 'Dark Grassy Lawn'),
|
||||||
|
|||||||
2
Main.py
2
Main.py
@@ -32,7 +32,7 @@ from Utils import output_path, parse_player_names
|
|||||||
from source.item.FillUtil import create_item_pool_config, massage_item_pool, district_item_pool_config
|
from source.item.FillUtil import create_item_pool_config, massage_item_pool, district_item_pool_config
|
||||||
|
|
||||||
|
|
||||||
__version__ = '1.0.2.0-v'
|
__version__ = '1.0.3.0-v'
|
||||||
|
|
||||||
from source.classes.BabelFish import BabelFish
|
from source.classes.BabelFish import BabelFish
|
||||||
|
|
||||||
|
|||||||
@@ -133,6 +133,13 @@ CLI: ```--bombbag```
|
|||||||
|
|
||||||
## Bug Fixes and Notes.
|
## Bug Fixes and Notes.
|
||||||
|
|
||||||
|
* 0.5.1.7
|
||||||
|
* Baserom update
|
||||||
|
* Fix for Inverted Mode: Dark Lake Hylia shop defaults to selling a blue potion
|
||||||
|
* Fix for Ijwu's enemizer: Boss door in Thieves' Town no longer closes after the maiden hint if Blind is shuffled to Theives' Town in boss shuffle + crossed mode
|
||||||
|
* No logic now sets the AllowAccidentalMajorGlitches flag in the rom appropriately
|
||||||
|
* Houlihan room now exits wherever Link's House is shuffled to
|
||||||
|
* Rom fixes from Catobat and Codemann8. Thanks!
|
||||||
* 0.5.1.6
|
* 0.5.1.6
|
||||||
* Rules fixes for TT (Boss and Cell) can now have TT Big Key if not otherwise required (boss shuffle + crossed dungeon)
|
* Rules fixes for TT (Boss and Cell) can now have TT Big Key if not otherwise required (boss shuffle + crossed dungeon)
|
||||||
* BUg fix for money balancing
|
* BUg fix for money balancing
|
||||||
|
|||||||
@@ -966,6 +966,7 @@ def create_shops(world, player):
|
|||||||
if world.mode[player] == 'inverted' and region_name == 'Dark Lake Hylia Shop':
|
if world.mode[player] == 'inverted' and region_name == 'Dark Lake Hylia Shop':
|
||||||
locked = True
|
locked = True
|
||||||
inventory = [('Blue Potion', 160), ('Blue Shield', 50), ('Bombs (10)', 50)]
|
inventory = [('Blue Potion', 160), ('Blue Shield', 50), ('Bombs (10)', 50)]
|
||||||
|
custom = True
|
||||||
region = world.get_region(region_name, player)
|
region = world.get_region(region_name, player)
|
||||||
shop = Shop(region, room_id, type, shopkeeper, custom, locked, sram)
|
shop = Shop(region, room_id, type, shopkeeper, custom, locked, sram)
|
||||||
region.shop = shop
|
region.shop = shop
|
||||||
|
|||||||
4
Rom.py
4
Rom.py
@@ -35,7 +35,7 @@ from source.classes.SFX import randomize_sfx
|
|||||||
|
|
||||||
|
|
||||||
JAP10HASH = '03a63945398191337e896e5771f77173'
|
JAP10HASH = '03a63945398191337e896e5771f77173'
|
||||||
RANDOMIZERBASEHASH = 'c1b18f6455af56b738d4fe8f266ef055'
|
RANDOMIZERBASEHASH = '6c43ba88d17005bd1237fe1a62597705'
|
||||||
|
|
||||||
|
|
||||||
class JsonRom(object):
|
class JsonRom(object):
|
||||||
@@ -336,6 +336,7 @@ def patch_enemizer(world, player, rom, local_rom, enemizercli, random_sprite_on_
|
|||||||
rom.write_bytes(0xEA081, [0x5c, 0x00, 0x80, 0xb7, 0xc9, 0x6, 0xf0, 0x24,
|
rom.write_bytes(0xEA081, [0x5c, 0x00, 0x80, 0xb7, 0xc9, 0x6, 0xf0, 0x24,
|
||||||
0xad, 0x3, 0x4, 0x29, 0x20, 0xf0, 0x1d])
|
0xad, 0x3, 0x4, 0x29, 0x20, 0xf0, 0x1d])
|
||||||
rom.write_byte(0x200101, 0) # Do not close boss room door on entry.
|
rom.write_byte(0x200101, 0) # Do not close boss room door on entry.
|
||||||
|
rom.write_byte(0x1B0101, 0) # Do not close boss room door on entry. (for Ijwu's enemizer)
|
||||||
|
|
||||||
if random_sprite_on_hit:
|
if random_sprite_on_hit:
|
||||||
_populate_sprite_table()
|
_populate_sprite_table()
|
||||||
@@ -1545,6 +1546,7 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False):
|
|||||||
rom.write_byte(0x1800A3, 0x01) # enable correct world setting behaviour after agahnim kills
|
rom.write_byte(0x1800A3, 0x01) # enable correct world setting behaviour after agahnim kills
|
||||||
rom.write_byte(0x1800A4, 0x01 if world.logic[player] != 'nologic' else 0x00) # enable POD EG fix
|
rom.write_byte(0x1800A4, 0x01 if world.logic[player] != 'nologic' else 0x00) # enable POD EG fix
|
||||||
rom.write_byte(0x180042, 0x01 if world.save_and_quit_from_boss else 0x00) # Allow Save and Quit after boss kill
|
rom.write_byte(0x180042, 0x01 if world.save_and_quit_from_boss else 0x00) # Allow Save and Quit after boss kill
|
||||||
|
rom.write_byte(0x180358, 0x01 if world.logic[player] == 'nologic' else 0x00)
|
||||||
|
|
||||||
# remove shield from uncle
|
# remove shield from uncle
|
||||||
rom.write_bytes(0x6D253, [0x00, 0x00, 0xf6, 0xff, 0x00, 0x0E])
|
rom.write_bytes(0x6D253, [0x00, 0x00, 0xf6, 0xff, 0x00, 0x0E])
|
||||||
|
|||||||
@@ -76,6 +76,9 @@ nop : jsl OverridePaletteHeader
|
|||||||
org $02817e ; Bank02.asm : 414 (LDA $02811E, X)
|
org $02817e ; Bank02.asm : 414 (LDA $02811E, X)
|
||||||
jsl FixAnimatedTiles
|
jsl FixAnimatedTiles
|
||||||
|
|
||||||
|
org $0aef43 ; UnderworldMap_RecoverGFX
|
||||||
|
jsl FixCloseDungeonMap
|
||||||
|
|
||||||
org $028a06 ; Bank02.asm : 1941 Dungeon_ResetTorchBackgroundAndPlayer
|
org $028a06 ; Bank02.asm : 1941 Dungeon_ResetTorchBackgroundAndPlayer
|
||||||
JSL FixWallmasterLamp
|
JSL FixWallmasterLamp
|
||||||
|
|
||||||
@@ -186,9 +189,9 @@ Main_ShowTextMessage:
|
|||||||
|
|
||||||
; Conditionally disable UW music changes in Door Rando
|
; Conditionally disable UW music changes in Door Rando
|
||||||
org $028ADB ; <- Bank02.asm:2088-2095 (LDX.b #$14 : LDA $A0 ...)
|
org $028ADB ; <- Bank02.asm:2088-2095 (LDX.b #$14 : LDA $A0 ...)
|
||||||
JSL.l Underworld_DoorDown_Entry : CPX #$10
|
JSL.l Underworld_DoorDown_Entry : CPX #$FF
|
||||||
db $B0, $21 ; BCS $028B04
|
BEQ + : db $80, $1C ; BRA $028B04
|
||||||
BRA + : NOP #6 : +
|
NOP #6 : +
|
||||||
|
|
||||||
org $02C3F2 ; <- Bank02.asm:10521 Unused call
|
org $02C3F2 ; <- Bank02.asm:10521 Unused call
|
||||||
Underworld_DoorDown_Call:
|
Underworld_DoorDown_Call:
|
||||||
|
|||||||
10
asm/gfx.asm
10
asm/gfx.asm
@@ -45,6 +45,16 @@ FixAnimatedTiles:
|
|||||||
+ LDA $02802E, X ; what we wrote over
|
+ LDA $02802E, X ; what we wrote over
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
|
FixCloseDungeonMap:
|
||||||
|
LDA.l DRMode : CMP #$02 : BNE .vanilla
|
||||||
|
LDA $040C : BMI .vanilla
|
||||||
|
LSR : TAX
|
||||||
|
LDA.l DungeonTilesets,x
|
||||||
|
RTL
|
||||||
|
.vanilla
|
||||||
|
LDA $7EC20E
|
||||||
|
RTL
|
||||||
|
|
||||||
FixWallmasterLamp:
|
FixWallmasterLamp:
|
||||||
ORA $0458
|
ORA $0458
|
||||||
STY $1C : STA $1D : RTL ; what we wrote over
|
STY $1C : STA $1D : RTL ; what we wrote over
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user