Freeze fairy abyss/beam dash enemies

Fix original key drops on split supertiles (pokey 1)
Fix mystery/customizer boolean issue
Enemy bans
This commit is contained in:
aerinon
2023-10-06 10:47:22 -06:00
parent 7d371b9952
commit 1434911727
16 changed files with 2192 additions and 48 deletions

View File

@@ -110,7 +110,8 @@ def add_kholdstare_to_list(sprite_list, room_id):
def add_vitreous_to_list(sprite_list, room_id):
sprite_list.insert(0, create_sprite(room_id, EnemySprite.Vitreous, 0x00, 0, 0x07, 0x05))
sprite_list.clear() # vitreous does not play nice which other sprites on the tile, just kill them
sprite_list.append(create_sprite(room_id, EnemySprite.Vitreous, 0x00, 0, 0x07, 0x05))
def add_trinexx_to_list(sprite_list, room_id):
@@ -119,14 +120,8 @@ def add_trinexx_to_list(sprite_list, room_id):
sprite_list.insert(2, create_sprite(room_id, EnemySprite.TrinexxIceHead, 0x00, 0, 0x07, 0x05))
def boss_writes(world, player, rom):
rom.write_byte(snes_to_pc(0x368107), 1) # centralize drops
eye_number = random.randint(0, 8) # randomize moldorm eyes (var + 1)
rom.write_byte(snes_to_pc(0x368102), eye_number) # enemizer flag
rom.write_byte(snes_to_pc(0x1DDBB3), eye_number) # loop variable
def boss_adjust(world, player):
data_tables = world.data_tables[player]
arrghus_can_swim = True
water_tiles_on = True
for dungeon in world.get_dungeons(player):
for level, boss in dungeon.bosses.items():
if not boss or boss.name in ['Agahnim', 'Agahnim2']:
@@ -143,6 +138,22 @@ def boss_writes(world, player, rom):
if len(sprite_list) > 16:
del sprite_list[16:]
data_tables.room_headers[room_id].sprite_sheet = required_boss_sheets[sprite_type]
def boss_writes(world, player, rom):
rom.write_byte(snes_to_pc(0x368107), 1) # centralize drops
eye_number = random.randint(0, 8) # randomize moldorm eyes (var + 1)
rom.write_byte(snes_to_pc(0x368102), eye_number) # enemizer flag
rom.write_byte(snes_to_pc(0x1DDBB3), eye_number) # loop variable
data_tables = world.data_tables[player]
arrghus_can_swim = True
water_tiles_on = True
for dungeon in world.get_dungeons(player):
for level, boss in dungeon.bosses.items():
if not boss or boss.name in ['Agahnim', 'Agahnim2']:
continue
room_data = get_dungeon_boss_room(dungeon.name, level)
room_id = room_data[0]
# room changes
if boss.name == 'Arrghus' and (dungeon.name != 'Swamp Palace' or level is not None):
rom.write_byte(snes_to_pc(0x0DB6BE), 0) # arrghus can stand on ground

View File

@@ -142,6 +142,7 @@ UwGeneralDeny:
- [ 0x0065, 2, [ "Beamos", "AntiFairyCircle", "Bumper" ] ] #"Thieves' Town - Attic Window - Rat 3"
- [ 0x0066, 0, [ "Beamos", "AntiFairyCircle", "BigSpike", "Bumper" ] ] #"Swamp Palace - Waterfall Room - Hover 1"
- [ 0x0067, 1, [ "RollerVerticalUp", "RollerVerticalDown" ] ] #"Skull Woods - Firebar Pits - Blue Bari 1"
- [ 0x0067, 2, ["Bumper"]] #"Skull Woods - Firebar Pits - Blue Bari 2"
- [ 0x0067, 3, [ "RollerVerticalUp", "RollerVerticalDown" ] ] #"Skull Woods - Firebar Pits - Hardhat Beetle 1"
- [ 0x0067, 5, [ "RollerVerticalDown" ] ] #"Skull Woods - Firebar Pits - Hardhat Beetle 3"
- [ 0x0067, 6, [ "RollerVerticalDown" ] ] #"Skull Woods - Firebar Pits - Hardhat Beetle 4"
@@ -293,10 +294,13 @@ UwGeneralDeny:
- [ 0x00ce, 4, [ "RollerVerticalDown", "RollerVerticalUp", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Beamos", "Bumper", "FirebarCW", "FirebarCCW"]]
- [ 0x00ce, 5, [ "RollerVerticalDown", "RollerVerticalUp", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Beamos", "Bumper", "FirebarCW", "FirebarCCW"]]
- [ 0x00ce, 6, [ "RollerVerticalDown", "RollerVerticalUp", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Beamos", "Bumper", "FirebarCW", "FirebarCCW"]]
- [ 0x00ce, 7, [ "RollerVerticalDown", "RollerVerticalUp", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Beamos", "Bumper", "FirebarCW", "FirebarCCW"]]
- [ 0x00d0, 0, [ "Statue", "Beamos", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper"]]
- [ 0x00d0, 1, [ "AntiFairyCircle", "BigSpike", "Bumper"]]
- [ 0x00d0, 4, [ "Statue", "Beamos", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper"]]
- [ 0x00d0, 5, [ "Statue", "Beamos", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper"]]
- [ 0x00ce, 7, [ "RollerVerticalDown", "RollerVerticalUp", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Beamos", "Bumper", "FirebarCW", "FirebarCCW"]]
- [ 0x00d0, 6, [ "Statue", "Beamos", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper"]]
- [ 0x00d0, 7, [ "Statue", "Beamos", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper"]]
- [ 0x00d0, 9, [ "AntiFairyCircle", "BigSpike", "Bumper"]]
- [ 0x00d0, 6, [ "Statue", "RollerVerticalUp", "RollerVerticalDown", "RollerHorizontalLeft", "Beamos", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper" ] ] # Agahnims Tower - Dark Maze - Blue Guard 2
- [ 0x00d2, 8, [ "RollerVerticalDown", "RollerHorizontalLeft", "Beamos", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper" ] ] #"Misery Mire - Mire 2 - Popo BL"
@@ -347,14 +351,18 @@ UwGeneralDeny:
- [ 0x0107, 2, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle"]]
OwGeneralDeny:
- [0x1e, 3, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle"]] # forbid a beamos here
- [0x40, 0, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle"]]
- [0x40, 7, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle"]]
- [0x40, 13, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle"]]
- [0x40, 14, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle"]]
- [0x40, 0, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle", "Thief"]]
- [0x40, 7, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle", "Thief"]]
- [0x40, 13, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle", "Thief"]]
- [0x40, 14, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle", "Thief"]]
- [0x5e, 4, ["RollerVerticalUp", "Gibo"]] # forbid that one roller for kiki pod, and the kiki eating Gibo
- [0x5e, 5, ["Gibo"]] # kiki eating Gibo
UwEnemyDrop:
- [0x0085, 9, ["Babasu"]] # ran off the edge and didn't return
- [0x00cb, 3, ["Zoro"]] # layer issues
- [0x00cb, 5, ["Zoro"]] # layer issues
- [0x00cb, 9, ["Zoro"]] # layer issues
- [0x00cb, 10, ["Zoro"]] # layer issues
- [0x00cc, 5, ["Babasu"]] # little hard to see and kill appropriately
# the following are behind rails or otherwise unactivate-able
- [0x0077, 4, ["StalfosKnight", "Geldman", "Blob", "Stal", "Wizzrobe"]] # can't activate here

View File

@@ -53,7 +53,7 @@ UW: # Total 94431
Kyameron: 237 # 0.42147% raw:398 3.52212%
Landmine: 19 # 5.40077% raw:5100 45.13274%
Leever: 154 # 0.65127% raw:615 5.44248%
Lynel: 500 # 0.17897% raw:169 1.49558%
Lynel: 400 # 0.17897% raw:169 1.49558%
MiniHelmasaur: 109 # 0.91495% raw:864 7.64602%
MiniMoldorm: 109 # 0.91495% raw:864 7.64602%
Moblin: 367 # 0.27216% raw:257 2.27434%