fix: various Enemizer fixes
Fixed enemizer sprite gfx for soldier enemies falling down pits Remove unnecessary sprite sheet subgroup for somaria platforms Freeing up unnecessary sprite sheet subgroups for old man screens Fix paradox cave and kakariko shop gfx in enemizer Fix swamp drain gfx in enemizer Fix bat crash sprite gfx in enemizer Remove unused subgroups and consolidate purple chest/frog sprite sheets Remove invalid OW IDs from sprite sheets
This commit is contained in:
@@ -3,4 +3,5 @@
|
|||||||
* 1.4.9
|
* 1.4.9
|
||||||
* Mirror scroll will show up on file start screen if enabled (thanks Clearmouse!)
|
* Mirror scroll will show up on file start screen if enabled (thanks Clearmouse!)
|
||||||
* Fixes for HMG by Muffins
|
* Fixes for HMG by Muffins
|
||||||
|
* Various fixes for Enemizer by Codemann (gfx fixes, more randomization options)
|
||||||
* Vanilla door shuffle prevents big key doors changes from door_type_mode
|
* Vanilla door shuffle prevents big key doors changes from door_type_mode
|
||||||
|
|||||||
@@ -123,6 +123,9 @@ LenientTrapsForTesting = {0x16, 0x26, 0x3f, 0x40, 0x42, 0x46, 0x49, 0x4e, 0x57,
|
|||||||
0x65, 0x6a, 0x74, 0x76, 0x7d, 0x98,
|
0x65, 0x6a, 0x74, 0x76, 0x7d, 0x98,
|
||||||
0x9e, 0xaf, 0xba, 0xc6, 0xcb, 0xce, 0xd2, 0xd5,
|
0x9e, 0xaf, 0xba, 0xc6, 0xcb, 0xce, 0xd2, 0xd5,
|
||||||
0xd8, 0xdf, 0xe4, 0xe7, 0xee, 0xfd, 0x10c}
|
0xd8, 0xdf, 0xe4, 0xe7, 0xee, 0xfd, 0x10c}
|
||||||
|
PitRooms = {0x17, 0x1a, 0x2a, 0x31, 0x3c, 0x3d, 0x40, 0x44, 0x49, 0x4e, 0x56, 0x58, 0x5c, 0x67, 0x72,
|
||||||
|
0x7b, 0x7c, 0x7d, 0x7f, 0x82, 0x8b, 0x8d, 0x95, 0x96, 0x9b, 0x9c, 0x9d, 0x9e, 0xa0, 0xa5,
|
||||||
|
0xaf, 0xbc, 0xc0, 0xc5, 0xc6, 0xd1, 0xd5, 0xe7, 0xe8, 0xee, 0xf0, 0xf1, 0xfb, 0x123}
|
||||||
|
|
||||||
# wallmasters must not be on tiles near spiral staircases. Unknown if other stairs have issues
|
# wallmasters must not be on tiles near spiral staircases. Unknown if other stairs have issues
|
||||||
WallmasterInvalidRooms = {
|
WallmasterInvalidRooms = {
|
||||||
@@ -222,9 +225,12 @@ def init_sprite_requirements():
|
|||||||
SpriteRequirement(EnemySprite.Hoarder2).sub_group(3, 0x11).exclude({0x10c}),
|
SpriteRequirement(EnemySprite.Hoarder2).sub_group(3, 0x11).exclude({0x10c}),
|
||||||
SpriteRequirement(EnemySprite.TutorialGuard).affix(),
|
SpriteRequirement(EnemySprite.TutorialGuard).affix(),
|
||||||
SpriteRequirement(EnemySprite.LightningGate).affix().sub_group(3, 0x3f),
|
SpriteRequirement(EnemySprite.LightningGate).affix().sub_group(3, 0x3f),
|
||||||
SpriteRequirement(EnemySprite.BlueGuard).aquaphobia().sub_group(1, [0xd, 0x49]),
|
SpriteRequirement(EnemySprite.BlueGuard).aquaphobia().sub_group(1, [0xd, 0x49]).exclude(PitRooms),
|
||||||
SpriteRequirement(EnemySprite.GreenGuard).aquaphobia().sub_group(1, 0x49),
|
SpriteRequirement(EnemySprite.BlueGuard).aquaphobia().sub_group(1, [0xd, 0x49]).sub_group(2, [0x29, 0x13]),
|
||||||
SpriteRequirement(EnemySprite.RedSpearGuard).aquaphobia().sub_group(1, [0xd, 0x49]),
|
SpriteRequirement(EnemySprite.GreenGuard).aquaphobia().sub_group(1, 0x49).exclude(PitRooms),
|
||||||
|
SpriteRequirement(EnemySprite.GreenGuard).aquaphobia().sub_group(1, 0x49).sub_group(2, 0x13),
|
||||||
|
SpriteRequirement(EnemySprite.RedSpearGuard).aquaphobia().sub_group(1, [0xd, 0x49]).exclude(PitRooms),
|
||||||
|
SpriteRequirement(EnemySprite.RedSpearGuard).aquaphobia().sub_group(1, [0xd, 0x49]).sub_group(2, [0x29, 0x13]),
|
||||||
SpriteRequirement(EnemySprite.BluesainBolt).aquaphobia().sub_group(0, 0x46).sub_group(1, [0xd, 0x49]),
|
SpriteRequirement(EnemySprite.BluesainBolt).aquaphobia().sub_group(0, 0x46).sub_group(1, [0xd, 0x49]),
|
||||||
SpriteRequirement(EnemySprite.UsainBolt).aquaphobia().sub_group(1, [0xd, 0x49]),
|
SpriteRequirement(EnemySprite.UsainBolt).aquaphobia().sub_group(1, [0xd, 0x49]),
|
||||||
SpriteRequirement(EnemySprite.BlueArcher).sub_group(0, 0x48).sub_group(1, 0x49),
|
SpriteRequirement(EnemySprite.BlueArcher).sub_group(0, 0x48).sub_group(1, 0x49),
|
||||||
@@ -325,7 +331,7 @@ def init_sprite_requirements():
|
|||||||
SpriteRequirement(EnemySprite.BlueZirro).no_drop().sub_group(3, 0x1b).exclude(NoFlyingRooms),
|
SpriteRequirement(EnemySprite.BlueZirro).no_drop().sub_group(3, 0x1b).exclude(NoFlyingRooms),
|
||||||
SpriteRequirement(EnemySprite.Pikit).sub_group(3, 0x1b),
|
SpriteRequirement(EnemySprite.Pikit).sub_group(3, 0x1b),
|
||||||
SpriteRequirement(EnemySprite.CrystalMaiden).affix(),
|
SpriteRequirement(EnemySprite.CrystalMaiden).affix(),
|
||||||
SpriteRequirement(EnemySprite.OldMan).affix().sub_group(0, 0x46).sub_group(1, 0x49).sub_group(2, 0x1c),
|
SpriteRequirement(EnemySprite.OldMan).affix().sub_group(2, 0x1c),
|
||||||
SpriteRequirement(EnemySprite.PipeDown).affix(),
|
SpriteRequirement(EnemySprite.PipeDown).affix(),
|
||||||
SpriteRequirement(EnemySprite.PipeUp).affix(),
|
SpriteRequirement(EnemySprite.PipeUp).affix(),
|
||||||
SpriteRequirement(EnemySprite.PipeRight).affix(),
|
SpriteRequirement(EnemySprite.PipeRight).affix(),
|
||||||
@@ -525,9 +531,9 @@ def init_sprite_sheets(requirements):
|
|||||||
|
|
||||||
def setup_required_dungeon_groups(sheets, data_tables):
|
def setup_required_dungeon_groups(sheets, data_tables):
|
||||||
|
|
||||||
sheets[did(1)].add_sprite_to_sheet([70, 73, 28, 82], {0xe4, 0xf0}) # old man
|
sheets[did(1)].add_sprite_to_sheet([None, None, 28, None], {0xe4, 0xf0}) # old man
|
||||||
# various npcs
|
# various npcs
|
||||||
sheets[did(5)].add_sprite_to_sheet([75, 77, 74, 90], {0xf3, 0x109, 0x10e, 0x10f, 0x110, 0x111, 0x112,
|
sheets[did(5)].add_sprite_to_sheet([75, 77, 74, 90], {0xf3, 0xff, 0x109, 0x10e, 0x10f, 0x110, 0x111, 0x112,
|
||||||
0x11a, 0x11c, 0x11f, 0x122})
|
0x11a, 0x11c, 0x11f, 0x122})
|
||||||
sheets[did(7)].add_sprite_to_sheet([75, 77, 57, 54], {0x8, 0x2c, 0x114, 0x115, 0x116}) # big fairies
|
sheets[did(7)].add_sprite_to_sheet([75, 77, 57, 54], {0x8, 0x2c, 0x114, 0x115, 0x116}) # big fairies
|
||||||
sheets[did(13)].add_sprite_to_sheet([81, None, None, None], {0x55, 0x102, 0x104}) # uncle, sick kid
|
sheets[did(13)].add_sprite_to_sheet([81, None, None, None], {0x55, 0x102, 0x104}) # uncle, sick kid
|
||||||
@@ -542,15 +548,13 @@ def setup_required_dungeon_groups(sheets, data_tables):
|
|||||||
sheets[did(3)].add_sprite_to_sheet([93, None, None, None], {0x51}) # mantle
|
sheets[did(3)].add_sprite_to_sheet([93, None, None, None], {0x51}) # mantle
|
||||||
sheets[did(42)].add_sprite_to_sheet([21, None, None, None], {0x11e}) # hype cave
|
sheets[did(42)].add_sprite_to_sheet([21, None, None, None], {0x11e}) # hype cave
|
||||||
sheets[did(10)].add_sprite_to_sheet([47, None, 46, None], {0x5c, 0x75, 0xb9, 0xd9}) # cannonballs
|
sheets[did(10)].add_sprite_to_sheet([47, None, 46, None], {0x5c, 0x75, 0xb9, 0xd9}) # cannonballs
|
||||||
sheets[did(37)].add_sprite_to_sheet([31, None, 39, 82], {0x24, 0xb4, 0xb5, 0xc6, 0xc7, 0xd6}) # somaria platforms
|
sheets[did(37)].add_sprite_to_sheet([None, None, 39, 82], {0x24, 0xb4, 0xb5, 0xc6, 0xc7, 0xd6}) # somaria platforms
|
||||||
# not sure 31 is needed above
|
|
||||||
|
|
||||||
free_sheet_reqs = [
|
free_sheet_reqs = [
|
||||||
([75, None, None, None], [0xff, 0x11f]), # shopkeepers
|
|
||||||
([None, 77, None, 21], [0x121]), # smithy
|
([None, 77, None, 21], [0x121]), # smithy
|
||||||
([None, None, None, 80], [0x108]), # chicken house
|
([None, None, None, 80], [0x108]), # chicken house
|
||||||
([14, 30, None, None], [0x123]), # mini moldorm (shutter door)
|
([14, 30, None, None], [0x123]), # mini moldorm (shutter door)
|
||||||
([None, None, 34, None], [0x36, 0x46, 0x66, 0x76]), # pirogusu spawners
|
([None, None, 34, None], [0x36, 0x46, 0x66]), # pirogusu spawners
|
||||||
([None, 32, None, None], [0x9f]), # babasu spawners
|
([None, 32, None, None], [0x9f]), # babasu spawners
|
||||||
([31, None, None, None], [0x7f]), # force baris
|
([31, None, None, None], [0x7f]), # force baris
|
||||||
([None, None, 35, None], [0x39, 0x49]), # wallmasters
|
([None, None, 35, None], [0x39, 0x49]), # wallmasters
|
||||||
@@ -570,7 +574,7 @@ def setup_required_dungeon_groups(sheets, data_tables):
|
|||||||
([None, None, (28, 36), 82], [0x2, 0x64]), # pull switches (snakes)
|
([None, None, (28, 36), 82], [0x2, 0x64]), # pull switches (snakes)
|
||||||
([None, None, None, 82], [0x1a, 0x3d, 0x44, 0x5e, 0x7c, 0x95, 0xc3]), # collapsing bridges
|
([None, None, None, 82], [0x1a, 0x3d, 0x44, 0x5e, 0x7c, 0x95, 0xc3]), # collapsing bridges
|
||||||
([None, None, None, 83], [0x3f, 0xce]), # pull tongue
|
([None, None, None, 83], [0x3f, 0xce]), # pull tongue
|
||||||
([None, None, None, 83], [0x35, 0x37, 0x76]), # swamp drains
|
([None, None, None, 83], [0x35, 0x37]), # swamp drains
|
||||||
([None, None, 34, None], [0x28]), # tektike forced? - spawn chest
|
([None, None, 34, None], [0x28]), # tektike forced? - spawn chest
|
||||||
([None, None, 37, None], [0x97]), # wizzrobe spawner - in middle of room...
|
([None, None, 37, None], [0x97]), # wizzrobe spawner - in middle of room...
|
||||||
|
|
||||||
@@ -701,17 +705,18 @@ def setup_required_overworld_groups(sheets):
|
|||||||
sheets[6].add_sprite_to_sheet([0x4F, 0x49, 0x4A, 0x50], {0x18, 0x22, 0x28, 0xA8, 0xB2, 0xB8})
|
sheets[6].add_sprite_to_sheet([0x4F, 0x49, 0x4A, 0x50], {0x18, 0x22, 0x28, 0xA8, 0xB2, 0xB8})
|
||||||
sheets[8].add_sprite_to_sheet([None, None, 18, None], {0x30, 0xC0}) # Desert (pre/post-Aga)
|
sheets[8].add_sprite_to_sheet([None, None, 18, None], {0x30, 0xC0}) # Desert (pre/post-Aga)
|
||||||
sheets[10].add_sprite_to_sheet([None, None, None, 17], {0x3A, 0xCA}) # M-rock (pre/post-Aga)
|
sheets[10].add_sprite_to_sheet([None, None, None, 17], {0x3A, 0xCA}) # M-rock (pre/post-Aga)
|
||||||
sheets[22].add_sprite_to_sheet([None, None, 24, None], {0x4F, 0xDF}) # Catfish (pre/post-Aga)
|
sheets[22].add_sprite_to_sheet([None, None, 24, None], {0x4F}) # Catfish
|
||||||
sheets[21].add_sprite_to_sheet([21, None, None, 21], {0x62, 0xF2}) # Smith DW (pre/post-Aga)
|
sheets[21].add_sprite_to_sheet([None, None, None, 21], {0x62, 0x69}) # Smith DW/VoO South
|
||||||
sheets[27].add_sprite_to_sheet([None, 42, None, None], {0x68, 0xF8}) # Dig Game (pre/post-Aga)
|
sheets[27].add_sprite_to_sheet([None, 42, None, None], {0x68}) # Dig Game
|
||||||
sheets[13].add_sprite_to_sheet([None, None, 76, None], {0x16, 0xA6}) # Witch hut (pre/post-Aga)
|
sheets[13].add_sprite_to_sheet([None, None, 76, None], {0x16, 0xA6}) # Witch hut (pre/post-Aga)
|
||||||
sheets[29].add_sprite_to_sheet([None, 77, None, 21], {0x69, 0xF9}) # VoO South (pre/post-Aga)
|
#sheets[29].add_sprite_to_sheet([None, 77, None, 21], {0x69}) # VoO South
|
||||||
sheets[15].add_sprite_to_sheet([None, None, 78, None], {0x2A, 0xBA}) # Haunted Grove (pre/post-Aga)
|
sheets[15].add_sprite_to_sheet([None, None, 78, None], {0x2A, 0xBA}) # Haunted Grove (pre/post-Aga)
|
||||||
sheets[17].add_sprite_to_sheet([None, None, None, 76], {0x6A, 0xFA}) # Stumpy (pre/post-Aga)
|
sheets[17].add_sprite_to_sheet([None, None, None, 76], {0x6A}) # Stumpy
|
||||||
sheets[12].add_sprite_to_sheet([None, None, 55, 54], {0x80, 0x110}) # Specials (pre/post-Aga)
|
sheets[12].add_sprite_to_sheet([None, None, 55, 54], {0x80}) # Specials
|
||||||
sheets[14].add_sprite_to_sheet([None, None, 12, 68], {0x81, 0x111}) # Zora's Domain (pre/post-Aga)
|
sheets[14].add_sprite_to_sheet([None, None, 12, 68], {0x81}) # Zora's Domain
|
||||||
sheets[26].add_sprite_to_sheet([15, None, None, None], {0x92}) # Lumberjacks post-Aga
|
sheets[26].add_sprite_to_sheet([15, None, None, None], {0x92}) # Lumberjacks post-Aga
|
||||||
sheets[23].add_sprite_to_sheet([None, None, None, 25], {0x5E, 0xEE}) # PoD pre/post-Aga
|
sheets[23].add_sprite_to_sheet([None, None, None, 25], {0x5E}) # PoD
|
||||||
|
sheets[19].add_sprite_to_sheet([None, 26, None, None], {0x5B}) # Pyramid post-Aga2 bat crash
|
||||||
|
|
||||||
free_sheet_reqs = [
|
free_sheet_reqs = [
|
||||||
[None, None, None, 0x14], # bully+pink ball needs this
|
[None, None, None, 0x14], # bully+pink ball needs this
|
||||||
|
|||||||
Reference in New Issue
Block a user