Merged in DR v1.5.0
This commit is contained in:
@@ -222,6 +222,14 @@ class CustomSettings(object):
|
||||
args.shuffle_songinstruments[p] = get_setting(settings['shuffle_songinstruments'], args.shuffle_songinstruments[p])
|
||||
args.msu_resume[p] = get_setting(settings['msu_resume'], args.msu_resume[p])
|
||||
|
||||
def has_setting(self, player, setting):
|
||||
if 'settings' in self.file_source and player in self.file_source['settings']:
|
||||
return setting in self.file_source['settings'][player]
|
||||
return False
|
||||
|
||||
def get_setting(self, player, setting):
|
||||
return self.file_source['settings'][player][setting]
|
||||
|
||||
def get_item_pool(self):
|
||||
if 'item_pool' in self.file_source:
|
||||
return self.file_source['item_pool']
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import RaceRandom as random
|
||||
from collections import defaultdict
|
||||
from Utils import snes_to_pc
|
||||
|
||||
from source.dungeon.EnemyList import SpriteType, EnemySprite, sprite_translation
|
||||
@@ -443,12 +444,16 @@ def randomize_enemies(world, player):
|
||||
if world.enemy_shuffle[player] != 'none':
|
||||
data_tables = world.data_tables[player]
|
||||
custom_uw, custom_ow = {}, {}
|
||||
enemy_map = world.customizer.get_enemies() if world.customizer else None
|
||||
if enemy_map and player in enemy_map:
|
||||
if 'Underworld' in enemy_map[player]:
|
||||
custom_uw = enemy_map[player]['Underworld']
|
||||
if 'Overworld' in enemy_map[player]:
|
||||
custom_ow = enemy_map[player]['Overworld']
|
||||
if world.force_enemy[player]:
|
||||
custom_ow = {area_id: {i: world.force_enemy[player] for i, s in enumerate(sprite_list)} for area_id, sprite_list in world.data_tables[player].ow_enemy_table.items()}
|
||||
custom_uw = {room_id: {i: world.force_enemy[player] for i, s in enumerate(sprite_list)} for room_id, sprite_list in world.data_tables[player].uw_enemy_table.room_map.items()}
|
||||
else:
|
||||
enemy_map = world.customizer.get_enemies() if world.customizer else None
|
||||
if enemy_map and player in enemy_map:
|
||||
if 'Underworld' in enemy_map[player]:
|
||||
custom_uw = enemy_map[player]['Underworld']
|
||||
if 'Overworld' in enemy_map[player]:
|
||||
custom_ow = enemy_map[player]['Overworld']
|
||||
randomize_underworld_sprite_sheets(data_tables.sprite_sheets, data_tables, custom_uw)
|
||||
randomize_underworld_rooms(data_tables, world, player, custom_uw)
|
||||
randomize_overworld_sprite_sheets(data_tables.sprite_sheets, data_tables, custom_ow)
|
||||
|
||||
@@ -683,9 +683,11 @@ def setup_custom_enemy_sheets(custom_enemies, sheets, data_tables, sheet_range,
|
||||
if key not in requirements:
|
||||
continue
|
||||
req = requirements[key]
|
||||
if isinstance(req, dict):
|
||||
if isinstance(req, dict) and room_id in req:
|
||||
req = req[room_id]
|
||||
if req.static or not req.can_randomize:
|
||||
else:
|
||||
req = None
|
||||
if req and (req.static or not req.can_randomize):
|
||||
try:
|
||||
combine_req(sub_groups_choices, req)
|
||||
except IncompatibleEnemyException:
|
||||
|
||||
Reference in New Issue
Block a user