Hack in Spanish
This commit is contained in:
@@ -8,6 +8,9 @@ from functools import reduce
|
||||
import operator as op
|
||||
from typing import List
|
||||
|
||||
from source.classes.BabelFish import BabelFish
|
||||
import CLI as cli
|
||||
|
||||
from BaseClasses import DoorType, Direction, CrystalBarrier, RegionType, Polarity, Sector, PolSlot, flooded_keys
|
||||
from Regions import key_only_locations, dungeon_events, flooded_keys_reverse
|
||||
from Dungeons import dungeon_regions
|
||||
@@ -1094,6 +1097,11 @@ def simple_dungeon_builder(name, sector_list):
|
||||
|
||||
|
||||
def create_dungeon_builders(all_sectors, world, player, dungeon_entrances=None):
|
||||
settings = cli.get_args_priority(None, None, None)
|
||||
if "load" in settings:
|
||||
settings = settings["load"]
|
||||
fish = BabelFish(lang=settings["lang"] if "lang" in settings else "en")
|
||||
|
||||
logger = logging.getLogger('')
|
||||
logger.info('Shuffling Dungeon Sectors')
|
||||
if dungeon_entrances is None:
|
||||
@@ -1149,7 +1157,7 @@ def create_dungeon_builders(all_sectors, world, player, dungeon_entrances=None):
|
||||
# polarity:
|
||||
if not global_pole.is_valid(dungeon_map):
|
||||
raise NeutralizingException('Either free location/crystal assignment is already globally invalid - lazy dev check this earlier!')
|
||||
logger.info('-Balancing Doors')
|
||||
logger.info(fish.translate("cli","cli","balance.doors"))
|
||||
assign_polarized_sectors(dungeon_map, polarized_sectors, global_pole, logger)
|
||||
# the rest
|
||||
assign_the_rest(dungeon_map, neutral_sectors, global_pole)
|
||||
@@ -1435,8 +1443,13 @@ def sum_polarity(sector_list):
|
||||
|
||||
|
||||
def assign_polarized_sectors(dungeon_map, polarized_sectors, global_pole, logger):
|
||||
settings = cli.get_args_priority(None, None, None)
|
||||
if "load" in settings:
|
||||
settings = settings["load"]
|
||||
fish = BabelFish(lang=settings["lang"] if "lang" in settings else "en")
|
||||
|
||||
# step 1: fix polarity connection issues
|
||||
logger.info('--Basic Traversal')
|
||||
logger.info(fish.translate("cli","cli","basic.traversal"))
|
||||
unconnected_builders = identify_polarity_issues(dungeon_map)
|
||||
while len(unconnected_builders) > 0:
|
||||
for name, builder in unconnected_builders.items():
|
||||
@@ -1524,10 +1537,15 @@ def assign_polarized_sectors(dungeon_map, polarized_sectors, global_pole, logger
|
||||
|
||||
|
||||
def polarity_step_3(dungeon_map, polarized_sectors, global_pole, logger):
|
||||
settings = cli.get_args_priority(None, None, None)
|
||||
if "load" in settings:
|
||||
settings = settings["load"]
|
||||
fish = BabelFish(lang=settings["lang"] if "lang" in settings else "en")
|
||||
|
||||
builder_order = list(dungeon_map.values())
|
||||
random.shuffle(builder_order)
|
||||
for builder in builder_order:
|
||||
logger.info('--Balancing %s', builder.name)
|
||||
logger.info('%s %s', fish.translate("cli","cli","balancing"), builder.name)
|
||||
while not builder.polarity().is_neutral():
|
||||
candidates = find_neutralizing_candidates(builder, polarized_sectors)
|
||||
valid, sectors = False, None
|
||||
@@ -1832,8 +1850,13 @@ def assign_the_rest(dungeon_map, neutral_sectors, global_pole):
|
||||
|
||||
|
||||
def split_dungeon_builder(builder, split_list):
|
||||
settings = cli.get_args_priority(None, None, None)
|
||||
if "load" in settings:
|
||||
settings = settings["load"]
|
||||
fish = BabelFish(lang=settings["lang"] if "lang" in settings else "en")
|
||||
|
||||
logger = logging.getLogger('')
|
||||
logger.info('Splitting Up Desert/Skull')
|
||||
logger.info(fish.translate("cli","cli","splitting.up") + ' ' + 'Desert/Skull')
|
||||
candidate_sectors = dict.fromkeys(builder.sectors)
|
||||
global_pole = GlobalPolarity(candidate_sectors)
|
||||
|
||||
@@ -1848,6 +1871,11 @@ def split_dungeon_builder(builder, split_list):
|
||||
|
||||
|
||||
def balance_split(candidate_sectors, dungeon_map, global_pole):
|
||||
settings = cli.get_args_priority(None, None, None)
|
||||
if "load" in settings:
|
||||
settings = settings["load"]
|
||||
fish = BabelFish(lang=settings["lang"] if "lang" in settings else "en")
|
||||
|
||||
logger = logging.getLogger('')
|
||||
# categorize sectors
|
||||
crystal_switches, crystal_barriers, neutral_sectors, polarized_sectors = categorize_sectors(candidate_sectors)
|
||||
@@ -1860,7 +1888,7 @@ def balance_split(candidate_sectors, dungeon_map, global_pole):
|
||||
# blue barriers
|
||||
assign_crystal_barrier_sectors(dungeon_map, crystal_barriers, global_pole)
|
||||
# polarity:
|
||||
logger.info('-Re-balancing ' + next(iter(dungeon_map.keys())) + ' et al')
|
||||
logger.info(fish.translate("cli","cli","re-balancing") + ' ' + next(iter(dungeon_map.keys())) + ' et al')
|
||||
assign_polarized_sectors(dungeon_map, polarized_sectors, global_pole, logger)
|
||||
# the rest
|
||||
assign_the_rest(dungeon_map, neutral_sectors, global_pole)
|
||||
|
||||
Reference in New Issue
Block a user