Change direction of green mimics

This commit is contained in:
2025-03-01 14:14:43 -06:00
parent b9a11e75bb
commit 77fd889121
2 changed files with 24 additions and 9 deletions

View File

@@ -3,7 +3,7 @@ from Utils import snes_to_pc
from source.dungeon.EnemyList import SpriteType, EnemySprite, sprite_translation
from source.dungeon.RoomList import Room010C
from source.enemizer.SpecialEnemyModes import get_enemy_map_uw, get_enemy_map_ow
from source.enemizer.SpecialEnemyModes import get_enemy_map_uw, get_enemy_map_ow, write_mimic_changes
from source.enemizer.SpriteSheets import sub_group_choices
from source.enemizer.SpriteSheets import randomize_underworld_sprite_sheets, randomize_overworld_sprite_sheets
from source.enemizer.TilePattern import tile_patterns
@@ -521,13 +521,16 @@ def write_enemy_shuffle_settings(world, player, rom):
# rom.write_byte(snes_to_pc(0x368108), 0xc4)
# rom.write_byte(snes_to_pc(0x0DB237), 4) # health value - randomize it if killable, maybe
# mimic room barriers
data_tables = world.data_tables[player]
mimic_room = data_tables.room_list[0x10c] = Room010C
mimic_room.layer1[40].data[0] = 0x54 # rail adjust
mimic_room.layer1[40].data[1] = 0x9C
mimic_room.layer1[45].data[1] = 0xB0 # block adjust 1
mimic_room.layer1[47].data[1] = 0xD0 # block adjust 2
if world.enemy_shuffle[player] == 'mimics':
write_mimic_changes(rom)
else:
# mimic room barriers
data_tables = world.data_tables[player]
mimic_room = data_tables.room_list[0x10c] = Room010C
mimic_room.layer1[40].data[0] = 0x54 # rail adjust
mimic_room.layer1[40].data[1] = 0x9C
mimic_room.layer1[45].data[1] = 0xB0 # block adjust 1
mimic_room.layer1[47].data[1] = 0xD0 # block adjust 2
# random tile pattern
pattern_name, tile_pattern = random.choice(tile_patterns)

View File

@@ -1,3 +1,6 @@
import RaceRandom as random
from Utils import snes_to_pc
from source.dungeon.EnemyList import EnemySprite, SpriteType, sprite_translation, enemy_names
def can_combine_req(req1, req2):
@@ -28,7 +31,10 @@ def get_enemy_map(mode, reqs, vanilla_map):
break
continue
if req.killable:
data[room_id][idx] = 'GreenMimic'
if random.random() > 0.1:
data[room_id][idx] = 'GreenMimic'
else:
data[room_id][idx] = 'RedMimic'
else:
data[room_id][idx] = enemy_names[sprite.kind]
if len(data[room_id]) == 0:
@@ -44,3 +50,9 @@ 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):
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])