Adjusted map info to be experimental
Moved mirror scroll to be standard in non-vanilla door shuffles Fixed potential duplicate map issues
This commit is contained in:
@@ -715,14 +715,6 @@ def cross_dungeon(world, player):
|
|||||||
all_dungeon_items = [y for x in world.dungeons if x.player == player for y in x.all_items]
|
all_dungeon_items = [y for x in world.dungeons if x.player == player for y in x.all_items]
|
||||||
target_items = 34 if world.retro[player] else 63
|
target_items = 34 if world.retro[player] else 63
|
||||||
d_items = target_items - len(all_dungeon_items)
|
d_items = target_items - len(all_dungeon_items)
|
||||||
if d_items > 0:
|
|
||||||
if d_items >= 1: # restore HC map
|
|
||||||
world.get_dungeon('Hyrule Castle', player).dungeon_items.append(ItemFactory('Map (Escape)', player))
|
|
||||||
if d_items >= 2: # restore GT map
|
|
||||||
world.get_dungeon('Ganons Tower', player).dungeon_items.append(ItemFactory('Map (Ganons Tower)', player))
|
|
||||||
if d_items > 2:
|
|
||||||
world.pool_adjustment[player] = d_items - 2
|
|
||||||
elif d_items < 0:
|
|
||||||
world.pool_adjustment[player] = d_items
|
world.pool_adjustment[player] = d_items
|
||||||
smooth_door_pairs(world, player)
|
smooth_door_pairs(world, player)
|
||||||
|
|
||||||
@@ -1300,7 +1292,7 @@ def stateful_door(door, kind):
|
|||||||
|
|
||||||
|
|
||||||
def random_door_type(door, partner, world, player, type_a, type_b, room_a, room_b):
|
def random_door_type(door, partner, world, player, type_a, type_b, room_a, room_b):
|
||||||
r_kind = random.choices([DoorKind.Normal, DoorKind.Bombable, DoorKind.Dashable], [5, 2, 3], k=1)[0]
|
r_kind = random.choices([DoorKind.Normal, DoorKind.Bombable, DoorKind.Dashable], [15, 4, 6], k=1)[0]
|
||||||
if r_kind != DoorKind.Normal:
|
if r_kind != DoorKind.Normal:
|
||||||
if door.type == DoorType.Normal:
|
if door.type == DoorType.Normal:
|
||||||
add_pair(door, partner, world, player)
|
add_pair(door, partner, world, player)
|
||||||
@@ -1492,6 +1484,7 @@ class DROptions(Flag):
|
|||||||
NoOptions = 0x00
|
NoOptions = 0x00
|
||||||
Eternal_Mini_Bosses = 0x01 # If on, GT minibosses marked as defeated when they try to spawn a heart
|
Eternal_Mini_Bosses = 0x01 # If on, GT minibosses marked as defeated when they try to spawn a heart
|
||||||
Town_Portal = 0x02 # If on, Players will start with mirror scroll
|
Town_Portal = 0x02 # If on, Players will start with mirror scroll
|
||||||
|
Map_Info = 0x04
|
||||||
Open_Desert_Wall = 0x80 # If on, pre opens the desert wall, no fire required
|
Open_Desert_Wall = 0x80 # If on, pre opens the desert wall, no fire required
|
||||||
|
|
||||||
# DATA GOES DOWN HERE
|
# DATA GOES DOWN HERE
|
||||||
|
|||||||
2
Main.py
2
Main.py
@@ -24,7 +24,7 @@ from Fill import distribute_items_cutoff, distribute_items_staleness, distribute
|
|||||||
from ItemList import generate_itempool, difficulties, fill_prizes
|
from ItemList import generate_itempool, difficulties, fill_prizes
|
||||||
from Utils import output_path, parse_player_names
|
from Utils import output_path, parse_player_names
|
||||||
|
|
||||||
__version__ = '0.0.20.3u'
|
__version__ = '0.0.20.4u'
|
||||||
|
|
||||||
|
|
||||||
class EnemizerError(RuntimeError):
|
class EnemizerError(RuntimeError):
|
||||||
|
|||||||
8
Rom.py
8
Rom.py
@@ -22,7 +22,7 @@ from EntranceShuffle import door_addresses, exit_ids
|
|||||||
|
|
||||||
|
|
||||||
JAP10HASH = '03a63945398191337e896e5771f77173'
|
JAP10HASH = '03a63945398191337e896e5771f77173'
|
||||||
RANDOMIZERBASEHASH = '9106102ce69cf290fe2f4fce1e95a89b'
|
RANDOMIZERBASEHASH = 'da4e48a9692a3f7c488dfb3dcaa58f42'
|
||||||
|
|
||||||
|
|
||||||
class JsonRom(object):
|
class JsonRom(object):
|
||||||
@@ -592,8 +592,12 @@ def patch_rom(world, rom, player, team, enemized):
|
|||||||
if world.mode[player] == 'inverted':
|
if world.mode[player] == 'inverted':
|
||||||
patch_shuffled_dark_sanc(world, rom, player)
|
patch_shuffled_dark_sanc(world, rom, player)
|
||||||
|
|
||||||
|
# setup dr option flags based on experimental, etc.
|
||||||
|
dr_flags = DROptions.Eternal_Mini_Bosses if world.doorShuffle[player] == 'vanilla' else DROptions.Town_Portal
|
||||||
|
if world.experimental[player]:
|
||||||
|
dr_flags |= DROptions.Map_Info
|
||||||
|
|
||||||
# patch doors
|
# patch doors
|
||||||
dr_flags = DROptions.Eternal_Mini_Bosses if world.doorShuffle[player] == 'vanilla' or not world.experimental[player] else DROptions.Town_Portal
|
|
||||||
if world.doorShuffle[player] == 'crossed':
|
if world.doorShuffle[player] == 'crossed':
|
||||||
rom.write_byte(0x139004, 2)
|
rom.write_byte(0x139004, 2)
|
||||||
for name, layout in world.key_layout[player].items():
|
for name, layout in world.key_layout[player].items():
|
||||||
|
|||||||
@@ -16,8 +16,11 @@ HudAdditions:
|
|||||||
lda #$345e : sta $7ec790 : bra .next
|
lda #$345e : sta $7ec790 : bra .next
|
||||||
+ lda #$207f : sta $7ec790
|
+ lda #$207f : sta $7ec790
|
||||||
.next lda DRMode : and #$0002 : bne + : plb : rts : +
|
.next lda DRMode : and #$0002 : bne + : plb : rts : +
|
||||||
|
lda $7ef36d : and #$00ff : beq +
|
||||||
lda DungeonReminderTable, x : sta $7ec702
|
lda DungeonReminderTable, x : sta $7ec702
|
||||||
|
+ lda DRFlags : and #$0040 : beq .restore
|
||||||
lda $7ef368 : and.l $0098c0, x : beq .restore
|
lda $7ef368 : and.l $0098c0, x : beq .restore
|
||||||
|
|
||||||
lda #$2811 : sta $7ec740
|
lda #$2811 : sta $7ec740
|
||||||
lda $7ef366 : and.l $0098c0, x : bne .check
|
lda $7ef366 : and.l $0098c0, x : bne .check
|
||||||
lda BigKeyStatus, x : and #$00ff : bne + ;todo: "and" is redundant or change table to one byte
|
lda BigKeyStatus, x : and #$00ff : bne + ;todo: "and" is redundant or change table to one byte
|
||||||
@@ -27,7 +30,7 @@ HudAdditions:
|
|||||||
+ lda #$207f : bra ++
|
+ lda #$207f : bra ++
|
||||||
.check lda #$2826
|
.check lda #$2826
|
||||||
++ sta $7ec742
|
++ sta $7ec742
|
||||||
+ txa : lsr : tax
|
txa : lsr : tax
|
||||||
|
|
||||||
lda $7ef4e0, x : jsr ConvertToDisplay : sta $7ec7a2
|
lda $7ef4e0, x : jsr ConvertToDisplay : sta $7ec7a2
|
||||||
lda #$2830 : sta $7ec7a4
|
lda #$2830 : sta $7ec7a4
|
||||||
@@ -47,8 +50,6 @@ ConvertToDisplay:
|
|||||||
!add #$2553 : rts
|
!add #$2553 : rts
|
||||||
+ !add #$2490 : rts
|
+ !add #$2490 : rts
|
||||||
|
|
||||||
; and $18c0, x
|
|
||||||
;207f is blank
|
|
||||||
|
|
||||||
CountChestKeys:
|
CountChestKeys:
|
||||||
jsl ItemDowngradeFix
|
jsl ItemDowngradeFix
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user