From ef642e6c1f9849c82a316bfe9f1cf7b0d273d761 Mon Sep 17 00:00:00 2001 From: Kara Alexandra Date: Sun, 9 Mar 2025 15:37:44 -0500 Subject: [PATCH] Mimic mode --- Rom.py | 2 +- data/base2current.bps | Bin 134043 -> 134076 bytes source/enemizer/Enemizer.py | 10 ++-- source/enemizer/SpecialEnemyModes.py | 76 +++++++++++++-------------- 4 files changed, 45 insertions(+), 43 deletions(-) diff --git a/Rom.py b/Rom.py index 1542420f..e4a999e6 100644 --- a/Rom.py +++ b/Rom.py @@ -43,7 +43,7 @@ from source.enemizer.Enemizer import write_enemy_shuffle_settings JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = '9cdc4e5b97fc03af357b4f35ea8802fd' +RANDOMIZERBASEHASH = '5d715dfd920f9eadf5db51b5719e1ff6' class JsonRom(object): diff --git a/data/base2current.bps b/data/base2current.bps index 0986c290927fc4d96248e0846db7bd5ff7fffd0f..91674e9bcb7bc40e649e799fcacc768fe4597566 100644 GIT binary patch delta 134 zcmV;10D1qLmk7L<2(Tan1d7ykE3+g6HF^l7jUrt8q)3CaTYc~BF$;k&hmtUVi 0.1: - data[room_id][idx] = 'GreenMimic' + sprite.kind = EnemySprite.GreenMimic else: - data[room_id][idx] = 'RedMimic' - else: - data[room_id][idx] = enemy_names[sprite.kind] - if len(data[room_id]) == 0: - del data[room_id] - return data + sprite.kind = EnemySprite.RedMimic - -def get_enemy_map_ow(mode, data_tables): +def set_mimics(data_tables): reqs = data_tables.sprite_requirements - return get_enemy_map(mode, reqs, data_tables.ow_enemy_table) + sheets = data_tables.sprite_sheets + uw_enemy_map = data_tables.uw_enemy_table.room_map + ow_enemy_map = data_tables.ow_enemy_table + + for idx in change_idx_1: + sheets[idx].sub_groups[1] = 0x2c + + set_mimic_map(reqs, uw_enemy_map) + set_mimic_map(reqs, ow_enemy_map) -def get_enemy_map_uw(mode, data_tables): - reqs = data_tables.sprite_requirements - return get_enemy_map(mode, reqs, data_tables.uw_enemy_table.room_map) def write_mimic_changes(rom, double = False): if double: @@ -60,12 +48,24 @@ def write_mimic_changes(rom, double = False): 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF6, 0xF6, 0x00, 0x20, 0x1A, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xE0, 0xE0, + 0x00, 0x00, 0x00, 0x00, 0xD0, 0xE0, 0xE0, 0x00, 0x30, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00]) else: rom.write_bytes(snes_to_pc(0x1EC71B), [0x00, 0xF0, 0x10, 0x00, 0x00, 0xF3, 0x0D, 0x00, 0x00, 0xF3, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(snes_to_pc(0x1EC75C), [0x01, 0x00]) - # rom.write_byte(snes_to_pc(0x0DB3DD), 0x0D) # make red mimics use green palette + # mimics move during dashes + rom.write_byte(snes_to_pc(0x3080A5), 0x01) + + # reverse green mimic direction + rom.write_bytes(snes_to_pc(0x1EC75C), [0x01, 0x00]) + + # make red mimics use green palette + rom.write_byte(snes_to_pc(0x0DB3DD), 0x0D) + + # make zol-dropper drop mimics + rom.write_byte(snes_to_pc(0x0DB10F), 0x05) + rom.write_byte(snes_to_pc(0x0DB3E8), 0x1D) + rom.write_bytes(snes_to_pc(0x1EB1CC), [0x22, 0x89, 0xF5, 0x1D, 0x60]) + rom.write_bytes(snes_to_pc(0x1EB0D9), [0x83, 0x9D, 0x20, 0x0E, 0xFE, 0xA0, 0x0D, 0x9E, 0xAA, 0x0C])