From 8917a0251df26b35c2e79dcb48c89b5defef7a43 Mon Sep 17 00:00:00 2001 From: Kara Alexandra Date: Sat, 16 Sep 2023 10:21:21 -0500 Subject: [PATCH] Add all-moldorm boss mode --- BaseClasses.py | 2 +- Bosses.py | 14 +++++++++++++- resources/app/cli/args.json | 3 ++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index dd5e32b2..78a1f2de 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -3711,7 +3711,7 @@ e_dmg = {"default": 0, "shuffled": 1, "random": 2} rb_mode = {"none": 0, "mapcompass": 1, "dungeon": 2} # algorithm: algo_mode = {"balanced": 0, "equitable": 1, "vanilla_fill": 2, "dungeon_only": 3, "district": 4, 'major_only': 5} -boss_mode = {"none": 0, "simple": 1, "full": 2, "chaos": 3, 'random': 3, 'unique': 4} +boss_mode = {"none": 0, "simple": 1, "full": 2, "chaos": 3, 'random': 3, 'unique': 4, 'moldorm': 5} # byte 10: settings_version diff --git a/Bosses.py b/Bosses.py index f003565d..4646056f 100644 --- a/Bosses.py +++ b/Bosses.py @@ -225,7 +225,7 @@ def place_bosses(world, player): bosses.remove(boss) place_boss(boss, level, loc, loc_text, world, player) - elif world.boss_shuffle[player] == "random": #all bosses chosen at random + elif world.boss_shuffle[player] == "random": # all bosses chosen at random for [loc, level] in boss_locations: loc_text = loc + (' ('+level+')' if level else '') try: @@ -233,6 +233,18 @@ def place_bosses(world, player): except IndexError: raise FillError('Could not place boss for location %s' % loc_text) + place_boss(boss, level, loc, loc_text, world, player) + elif world.boss_shuffle[player] == "moldorm": # all bosses Moldorm + for [loc, level] in boss_locations: + loc_text = loc + (' ('+level+')' if level else '') + try: + if can_place_boss(world, player, 'Moldorm', loc, level): + boss = 'Moldorm' + else: + boss = random.choice([b for b in placeable_bosses if can_place_boss(world, player, b, loc, level)]) + except IndexError: + raise FillError('Could not place boss for location %s' % loc_text) + place_boss(boss, level, loc, loc_text, world, player) elif world.boss_shuffle[player] == 'unique': bosses = list(placeable_bosses) diff --git a/resources/app/cli/args.json b/resources/app/cli/args.json index bc740e98..f5996573 100644 --- a/resources/app/cli/args.json +++ b/resources/app/cli/args.json @@ -565,7 +565,8 @@ "simple", "unique", "full", - "random" + "random", + "moldorm" ] }, "shuffleenemies": {