Fix for bonk torches counting issue

Hera basement issue fixed by banning wallmasters
Known Statue+Pull Switch interactions banned
Making sprite spammers count for more on tile to increase chance of pots being available to pick up.
More enemy bans
This commit is contained in:
aerinon
2023-10-11 12:26:54 -06:00
parent b50cf16fbf
commit 07e06add11
7 changed files with 106 additions and 35 deletions

View File

@@ -141,6 +141,12 @@ These are now independent of retro mode and have three options: None, Random, an
# Bug Fixes and Notes
* 1.3.0.5v
* Hud/Map Counter: Collecting a keys for this dungeon of a bonk torch no longer increments the counter twice and immediately updates the hud.
* Enemizer: Hera basement item counting twice fixed by banning wallmasters on the tile.
* Enemizer: Statues banned offscreen for pull switches
* Enemizer: Several sprite producing enemies have been limited on crowded tiles. Offenders: Hinox, Sluggula, Bomb Guard, Beamos, Gibo, Wall Cannons, Probe using Guards. Others do not spam as many projectiles.
* Enemizer: More enemy bans (mostly Wizzrobes near walls where they won't spawn, couple missed firebar spots)
* 1.3.0.4v
* Enemizer: The bunny beam near Lanmo 2 and the 4 fairies near Ice Armos are not shuffled anymore. This is due to how bosses shuffle works and since it cannot be guaranteed to work within the current system, they are vanilla. (Vitreous still overwrites the fairies and Arrghus only lets two spawn, etc.)
* Dropshuffle: Pokey 1 has been fixed to drop his item

2
Rom.py
View File

@@ -40,7 +40,7 @@ from source.enemizer.Enemizer import write_enemy_shuffle_settings
JAP10HASH = '03a63945398191337e896e5771f77173'
RANDOMIZERBASEHASH = '4935e770465a9fa00a1d642a657e43a8'
RANDOMIZERBASEHASH = 'cafcf71aefe71fc6cd8ab8fef06794b0'
class JsonRom(object):

Binary file not shown.

View File

@@ -268,6 +268,21 @@ def get_randomize_able_sprites_ow(area_id, data_tables):
sprite_limiter = {
EnemySprite.Debirando: 2,
EnemySprite.DebirandoPit: 2,
EnemySprite.Hinox: 2,
EnemySprite.Sluggula: 2,
EnemySprite.BombGuard: 2,
EnemySprite.Beamos: 2,
EnemySprite.Gibo: 2,
# EnemySprite.CannonTrooper: 2, ??
EnemySprite.WallCannonHorzTop: 2,
EnemySprite.WallCannonHorzBottom: 2,
EnemySprite.WallCannonVertLeft: 2,
EnemySprite.WallCannonVertRight: 2,
EnemySprite.BlueArcher: 2,
EnemySprite.BlueGuard: 2,
EnemySprite.GreenGuard: 2,
EnemySprite.RedSpearGuard: 2,
EnemySprite.RedJavelinGuard: 2,
EnemySprite.AntiFairyCircle: 4
}
@@ -300,7 +315,8 @@ def randomize_underworld_rooms(data_tables, world, player, custom_uw):
data_tables.room_headers[room_id].sprite_sheet = chosen_sheet.id - 0x40
candidate_sprites = get_possible_enemy_sprites(room_id, chosen_sheet, uw_candidates, data_tables)
randomized = True
wallmaster_chosen = room_id in {0x0039, 0x0049, 0x0056, 0x0057, 0x0068, 0x008d}
# wallmaster in hera basement throws off hera basement key code
wallmaster_chosen = room_id in {0x0039, 0x0049, 0x0056, 0x0057, 0x0068, 0x0087, 0x008d}
for i, sprite in randomizeable_sprites.items():
if room_id in custom_uw and i in custom_uw[room_id]:
sprite.kind = sprite_translation[custom_uw[room_id][i]]

View File

@@ -1,10 +1,16 @@
UwGeneralDeny:
- [ 0x0002, 0, [ "RollerVerticalDown" ] ] #"Sewers - Rat Pots - Rat 1"
- [ 0x0002, 1, [ "RollerVerticalDown" ] ] #"Sewers - Rat Pots - Rat 2"
- [ 0x0002, 2, [ "RollerVerticalUp" ] ] #"Sewers - Rat Pots - Rat 3"
- [ 0x0002, 3, [ "RollerVerticalUp" ] ] #"Sewers - Rat Pots - Rat 4"
- [ 0x0002, 0, [ "RollerVerticalDown", "Statue" ] ] #"Sewers - Rat Pots - Rat 1"
- [ 0x0002, 1, [ "RollerVerticalDown", "Statue" ] ] #"Sewers - Rat Pots - Rat 2"
- [ 0x0002, 2, [ "RollerVerticalUp", "Statue" ] ] #"Sewers - Rat Pots - Rat 3"
- [ 0x0002, 3, [ "RollerVerticalUp", "Statue" ] ] #"Sewers - Rat Pots - Rat 4"
- [ 0x0002, 4, [ "Statue" ] ] #"Sewers - Rat Pots - Rat 5"
- [ 0x0002, 15, [ "RollerVerticalDown", "RollerVerticalUp", "RollerHorizontalRight", "RollerHorizontalLeft" ] ] #"Sewers - Rat Pots - Rat 6"
- [ 0x0002, 16, [ "RollerVerticalDown", "RollerVerticalUp", "RollerHorizontalRight", "RollerHorizontalLeft" ] ] #"Sewers - Rat Pots - Rat 7"
- [ 0x0004, 1, ["Statue"]]
- [ 0x0004, 2, ["Statue"]]
- [ 0x0004, 3, ["Statue"]]
- [ 0x0004, 4, ["Statue"]]
- [ 0x0004, 15, ["Statue"]]
- [ 0x000a, 0, [ "RollerVerticalDown", "RollerVerticalUp" ] ] #"Palace of Darkness - Basement Ledge - Terrorpin 1"
- [ 0x000a, 1, [ "RollerHorizontalRight", "RollerHorizontalLeft" ] ] #"Palace of Darkness - Basement Ledge - Terrorpin 2"
- [ 0x000b, 1, [ "RollerVerticalDown", "RollerHorizontalRight", "Beamos", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper" ] ] #"Palace of Darkness - Callback - Terrorpin 1"
@@ -73,9 +79,9 @@ UwGeneralDeny:
- [ 0x003d, 10, [ "RollerVerticalUp", "RollerVerticalDown", "RollerHorizontalLeft", "RollerHorizontalRight", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper" ] ] #"Ganon's Tower - Torches 2 - Spark (Clockwise) 1"
- [ 0x003d, 12, [ "AntiFairyCircle", "Bumper" ] ] #"Ganon's Tower - Torches 2 - Bunny Beam"
- [ 0x003d, 13, [ "AntiFairyCircle", "Bumper" ] ] #"Ganon's Tower - Torches 2 - Antifairy"
- [ 0x003f, 1, [ "RollerHorizontalLeft", "RollerHorizontalRight", "AntiFairyCircle", "BigSpike", "FirebarCW", "FirebarCCW", "SpikeBlock", "Bumper" ] ] #"Ice Palace - P Room - Stalfos Knight 1"
- [ 0x003f, 3, [ "RollerVerticalUp", "RollerVerticalDown", "RollerHorizontalLeft", "RollerHorizontalRight", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper" ] ] #"Ice Palace - P Room - Stalfos Knight 2"
- [ 0x003f, 4, [ "Wizzrobe" ] ] # Wizzrobes can't spawn on pots
- [ 0x003f, 1, [ "RollerHorizontalLeft", "RollerHorizontalRight", "AntiFairyCircle", "BigSpike", "FirebarCW", "FirebarCCW", "SpikeBlock", "Bumper", "Statue"] ] #"Ice Palace - P Room - Stalfos Knight 1"
- [ 0x003f, 3, [ "RollerVerticalUp", "RollerVerticalDown", "RollerHorizontalLeft", "RollerHorizontalRight", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper", "Statue"] ] #"Ice Palace - P Room - Stalfos Knight 2"
- [ 0x003f, 4, [ "Wizzrobe", "Statue"] ] # Wizzrobes can't spawn on pots
- [ 0x0040, 0, [ "RollerVerticalUp", "RollerVerticalDown", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper" ] ] # Agahnims Tower - Bridge - Blue Guard 1
- [ 0x0040, 1, [ "Statue", "RollerVerticalUp", "RollerVerticalDown", "Beamos", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper" ] ] # Agahnims Tower - Bridge - Blue Guard 2
- [ 0x0041, 0, [ "RollerHorizontalLeft" ] ] #"Sewers - Dark Cactus - Rat 1"
@@ -124,6 +130,14 @@ UwGeneralDeny:
- [ 0x0057, 12, [ "RollerVerticalUp", "RollerVerticalDown", "Beamos", "AntiFairyCircle", "Bumper", "BigSpike", "SpikeBlock"]] #"Skull Woods - Big Key Room - Gibdo 6"
- [ 0x0057, 13, [ "RollerVerticalDown", "Beamos", "AntiFairyCircle", "Bumper" ] ] #"Skull Woods - Big Key Room - Blue Bari 1"
- [ 0x0057, 14, [ "RollerVerticalDown", "Beamos", "AntiFairyCircle", "Bumper" ] ] #"Skull Woods - Big Key Room - Blue Bari 2"
- [ 0x0058, 0, ["Statue"]]
- [ 0x0058, 1, ["Statue"]]
- [ 0x0058, 2, ["Statue"]]
- [ 0x0058, 3, ["Statue"]]
- [ 0x0058, 4, ["Statue"]]
- [ 0x0058, 6, ["Statue"]]
- [ 0x0058, 7, ["Statue"]]
- [ 0x0058, 8, ["Statue"]]
- [ 0x0058, 7, [ "RollerHorizontalLeft" ] ] #"Skull Woods - Lever Room - Hardhat Beetle 2"
- [ 0x0059, 0, [ "RollerVerticalUp", "RollerVerticalDown", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper" ] ] #"Skull Woods - Bridge Room - Mini Moldorm 1"
- [ 0x0059, 1, [ "RollerVerticalUp", "RollerVerticalDown", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper" ] ] #"Skull Woods - Bridge Room - Mini Moldorm 2"
@@ -466,21 +480,37 @@ UwEnemyDrop:
- [0x00c6, 6, ["HardhatBeetle", "Wizzrobe", "MiniHelmasaur", "BlueGuard", "GreenGuard", "RedSpearGuard",
"BluesainBolt", "UsainBolt", "BlueArcher", "GreenBushGuard", "RedJavelinGuard", "RedBushGuard",
"BombGuard", "GreenKnifeGuard", "Stal", "GreenMimic", "RedMimic", "StalfosKnight", "Geldman", "Blob"]]
- [0x00e6, 6, ["HardhatBeetle", "Wizzrobe", "MiniHelmasaur", "BlueGuard", "GreenGuard", "RedSpearGuard",
- [0x00e6, 0, ["HardhatBeetle", "Wizzrobe", "MiniHelmasaur", "BlueGuard", "GreenGuard", "RedSpearGuard",
"BluesainBolt", "UsainBolt", "BlueArcher", "GreenBushGuard", "RedJavelinGuard", "RedBushGuard",
"BombGuard", "GreenKnifeGuard", "Stal", "GreenMimic", "RedMimic", "StalfosKnight", "Geldman", "Blob"]]
# wizzrobe despawn issues - on pots/blocks - too close to some object
- [0x0013, 3, ["Wizzrobe"]]
- [0x0016, 0, ["Wizzrobe"]]
- [0x0016, 1, ["Wizzrobe"]]
- [0x0016, 2, ["Wizzrobe"]]
- [0x0016, 3, ["Wizzrobe"]]
- [0x0017, 5, ["Wizzrobe", "Stal"]]
- [0x0019, 2, ["Wizzrobe"]]
- [0x0019, 3, ["Wizzrobe"]]
- [0x001e, 1, ["Wizzrobe"]]
- [0x001e, 2, ["Wizzrobe"]]
- [0x0027, 5, ["Wizzrobe"]]
- [0x0027, 6, ["Wizzrobe"]]
- [0x002a, 3, ["Wizzrobe"]]
- [0x002a, 7, ["Wizzrobe"]]
- [0x002e, 4, ["Wizzrobe"]]
- [0x0035, 5, ["Wizzrobe"]]
- [0x0036, 8, ["Wizzrobe"]]
- [0x003b, 0, ["Wizzrobe"]]
- [0x003b, 2, ["Wizzrobe"]]
- [0x003b, 4, ["Wizzrobe"]]
- [0x003b, 6, ["Wizzrobe"]]
- [0x003c, 1, ["Wizzrobe"]]
- [0x003d, 9, ["Wizzrobe"]]
- [0x003d, 10, ["Wizzrobe"]]
- [0x003d, 11, ["Wizzrobe"]]
- [0x003d, 12, ["Wizzrobe"]]
- [0x003d, 13, ["Wizzrobe"]]
- [0x004b, 2, ["Wizzrobe"]]
- [0x004b, 6, ["Wizzrobe"]]
- [0x004b, 7, ["Wizzrobe"]]
@@ -488,6 +518,7 @@ UwEnemyDrop:
- [0x0054, 3, ["Wizzrobe", "Stal"]]
- [0x0055, 2, ["Wizzrobe"]] # slightly on wall
- [0x005e, 4, ["Wizzrobe", "Stal"]]
- [0x0065, 3, ["Wizzrobe"]]
- [0x0067, 5, ["Wizzrobe"]]
- [0x0067, 6, ["Wizzrobe"]]
- [0x0067, 7, ["Wizzrobe", "Stal"]]
@@ -501,23 +532,29 @@ UwEnemyDrop:
- [0x008b, 6, ["Wizzrobe", "Stal"]]
- [0x008b, 7, ["Wizzrobe", "Stal"]]
- [0x008d, 9, ["Wizzrobe", "Stal"]]
- [0x0096, 0, ["Wizzrobe", "Stal"]]
- [0x009b, 11, ["Wizzrobe"]]
- [0x009f, 5, ["Wizzrobe", "Stal"]]
- [0x00a1, 1, ["Wizzrobe"]]
- [0x00aa, 5, ["Wizzrobe"]]
- [0x00af, 0, ["Wizzrobe", "Stal"]]
- [0x00b0, 1, ["Wizzrobe"]]
- [0x00b0, 2, ["Wizzrobe"]]
- [0x00b2, 4, ["Wizzrobe"]]
- [0x00b8, 2, ["Wizzrobe"]]
- [0x00bf, 1, ["Wizzrobe"]]
- [0x00c1, 3, ["Wizzrobe", "Stal"]]
- [0x00c2, 0, ["Wizzrobe"]]
- [0x00c2, 3, ["Wizzrobe"]]
- [0x00c2, 7, ["Wizzrobe"]]
- [0x00ce, 4, ["Wizzrobe", "Leever", "BlueGuard", "GreenGuard", "RedSpearGuard", "BluesainBolt", "UsainBolt",
"BlueArcher", "RedJavelinGuard", "GreenKnifeGuard", "GreenMimic", "RedMimic"]]
- [0x00ce, 5, ["Wizzrobe", "Leever", "BlueGuard", "GreenGuard", "RedSpearGuard", "BluesainBolt", "UsainBolt",
"BlueArcher", "RedJavelinGuard", "GreenKnifeGuard", "GreenMimic", "RedMimic"]]
- [0x00ce, 6, ["Wizzrobe", "Leever", "BlueGuard", "GreenGuard", "RedSpearGuard", "BluesainBolt", "UsainBolt",
"BlueArcher", "RedJavelinGuard", "GreenKnifeGuard", "GreenMimic", "RedMimic"]]
- [0x00ce, 7, ["Wizzrobe", "Leever", "BlueGuard", "GreenGuard", "RedSpearGuard", "BluesainBolt", "UsainBolt",
"BlueArcher", "RedJavelinGuard", "GreenKnifeGuard", "GreenMimic", "RedMimic"]]
- [0x00ce, 8, ["Wizzrobe", "Leever", "BlueGuard", "GreenGuard", "RedSpearGuard", "BluesainBolt", "UsainBolt",
"BlueArcher", "RedJavelinGuard", "GreenKnifeGuard", "GreenMimic", "RedMimic"]]
- [0x00d0, 0, ["Wizzrobe"]]
- [0x00d0, 2, ["Wizzrobe"]]
- [0x00d0, 4, ["Wizzrobe"]]
@@ -599,25 +636,35 @@ UwEnemyDrop:
# the following are all slightly in the wall on spawn - not too applicable right now, these don't drop anyway
- [0x0064, 0, ["Leever"]]
- [0x00e5, 4, ["Leever"]]
- [0x00e5, 5, ["Leever"]]
- [0x00e5, 3, ["Wizzrobe"]]
- [0x00e5, 4, ["Leever", "Wizzrobe"]]
- [0x00e5, 5, ["Leever", "Wizzrobe"]]
# the pit one in 0xe6 room is in the pit section
- [0x00e6, 1, ["Leever"]]
- [0x00e6, 2, ["Leever"]]
- [0x00e6, 3, ["Leever"]]
- [0x00e6, 4, ["Leever"]]
- [0x00e6, 1, ["Leever", "Wizzrobe"]]
- [0x00e6, 2, ["Leever", "Wizzrobe"]]
- [0x00e6, 3, ["Leever", "Wizzrobe"]]
- [0x00e6, 4, ["Leever", "Wizzrobe"]]
- [0x00e7, 0, ["Wizzrobe"]]
- [0x00e7, 1, ["Wizzrobe"]]
- [0x00e7, 2, ["Wizzrobe"]]
- [0x00e7, 3, ["Leever"]]
- [0x00e7, 4, ["Leever"]]
- [0x00e7, 4, ["Leever", "Wizzrobe"]]
- [0x00e7, 5, ["Leever", "Wizzrobe"]]
- [0x00e7, 6, ["Wizzrobe"]]
- [0x00f0, 2, ["Leever"]] # clipped away
- [0x00f0, 3, ["Leever"]]
- [0x00f0, 4, ["Leever"]]
- [0x00f0, 5, ["Leever"]]
- [0x00f0, 6, ["Leever"]]
- [0x00f0, 8, ["Leever"]]
- [0x00f1, 0, ["Leever"]]
- [0x00f1, 1, ["Leever"]]
- [0x00f1, 6, ["Leever"]]
- [0x00f1, 7, ["Leever"]]
- [0x00f1, 8, ["Leever"]]
- [0x00f1, 9, ["Leever"]]
- [0x00f1, 0, ["Leever", "Wizzrobe"]]
- [0x00f1, 1, ["Leever", "Wizzrobe"]]
- [0x00f1, 2, ["Wizzrobe"]]
- [0x00f1, 3, ["Wizzrobe"]]
- [0x00f1, 4, ["Wizzrobe"]]
- [0x00f1, 5, ["Wizzrobe"]]
- [0x00f1, 6, ["Leever", "Wizzrobe"]]
- [0x00f1, 7, ["Leever", "Wizzrobe"]]
- [0x00f1, 8, ["Leever", "Wizzrobe"]]
- [0x00f1, 9, ["Leever", "Wizzrobe"]]

View File

@@ -1,12 +1,12 @@
meta:
players: 1
seed: 96
seed: 94
settings:
1:
# mode: standard
boss_shuffle: random
dropshuffle: underworld
# boss_shuffle: random
# dropshuffle: underworld
enemy_shuffle: shuffled
door_shuffle: crossed
intensity: 3
@@ -15,10 +15,12 @@ settings:
doors:
1:
lobbies:
Hyrule Castle South: GT Bob's Room SE
bosses:
Hyrule Castle South: Hyrule Castle Lobby S
doors:
Hyrule Castle Lobby W: Desert Sandworm Corner E Edge
placements:
1:
Ganons Tower (bottom): Armos Knights
Desert Palace - Torch: Small Key (Escape)
# keyshuffle: wild
@@ -28,9 +30,9 @@ bosses:
# 'Hera Basement Cage Enemy #9': Small Key (Tower of Hera)
# 'Hera Basement Cage Enemy #11': Fire Rod
# Tower of Hera - Basement Cage: Small Key (Turtle Rock)
#start_inventory:
# 1:
# - Lamp
start_inventory:
1:
- Pegasus Boots
# - Progressive Sword
# - Ocarina (Activated)
# - Hookshot