From e5e21090b0205b7522973fb95aabeac91500f467 Mon Sep 17 00:00:00 2001 From: PIEisFANTASTIC <49802408+PIEisFANTASTIC@users.noreply.github.com> Date: Mon, 14 Apr 2025 00:46:17 -0400 Subject: [PATCH] KH2: casual bounties option --- worlds/kh2/Locations.py | 19 +++++++++++++++++++ worlds/kh2/Options.py | 11 +++++++++-- worlds/kh2/__init__.py | 9 +++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/worlds/kh2/Locations.py b/worlds/kh2/Locations.py index 100e971e7d..c6035aca36 100644 --- a/worlds/kh2/Locations.py +++ b/worlds/kh2/Locations.py @@ -1282,6 +1282,25 @@ exclusion_table = { LocationName.HadesCupTrophyParadoxCups, LocationName.MusicalOrichalcumPlus, ], + "HitlistCasual": { + LocationName.FuturePete, + LocationName.BetwixtandBetweenBondofFlame, + LocationName.GrimReaper2, + LocationName.ThousandHeartless, + LocationName.WinnersProof, + LocationName.Experiment, + LocationName.Groundshaker, + LocationName.Hades, + LocationName.GenieJafar, + LocationName.Xaldin, + LocationName.StormRider, + LocationName.MansionBasementCorridorHiPotion, + LocationName.Xemnas1SecretAnsemReport13, + LocationName.XigbarSecretAnsemReport3, + LocationName.Scar, + LocationName.Lvl50, + LocationName.Lvl99 + }, "Cups": { LocationName.ProtectBeltPainandPanicCup, LocationName.SerenityGemPainandPanicCup, diff --git a/worlds/kh2/Options.py b/worlds/kh2/Options.py index ddaf36ebcb..1390aef3fb 100644 --- a/worlds/kh2/Options.py +++ b/worlds/kh2/Options.py @@ -165,6 +165,12 @@ class SuperBosses(Toggle): default = True +class CasualBounties(Toggle): + """More casual and generic locations to expand bounty pool without superbosses""" + display_name = "Casual Bounty Toggle" + default = False + + class Cups(Choice): """Olympus Cups Toggles No Cups: All Cups are placed into Excluded Locations. @@ -273,7 +279,7 @@ class BountyRequired(Range): If Goal is not Hitlist or Lucky Emblem and Hitlist this does nothing.""" display_name = "Bounties Required" range_start = 1 - range_end = 26 + range_end = 42 default = 7 @@ -283,7 +289,7 @@ class BountyAmount(Range): If Goal is not Hitlist or Lucky Emblem and Hitlist this does nothing.""" display_name = "Bounties Available" range_start = 1 - range_end = 26 + range_end = 42 default = 10 @@ -365,6 +371,7 @@ class KingdomHearts2Options(PerGameCommonOptions): Visitlocking: Visitlocking RandomVisitLockingItem: RandomVisitLockingItem SuperBosses: SuperBosses + CasualBounties: CasualBounties Cups: Cups SummonLevelLocationToggle: SummonLevelLocationToggle AtlanticaToggle: AtlanticaToggle diff --git a/worlds/kh2/__init__.py b/worlds/kh2/__init__.py index edc4305acc..dac5d78476 100644 --- a/worlds/kh2/__init__.py +++ b/worlds/kh2/__init__.py @@ -246,6 +246,8 @@ class KH2World(World): # hitlist if self.options.Goal not in ["lucky_emblem_hunt", "three_proofs"]: self.random_super_boss_list.extend(exclusion_table["Hitlist"]) + if self.options.CasualBounties: + self.random_super_boss_list.extend(exclusion_table["HitlistCasual"]) self.bounties_amount = self.options.BountyAmount.value self.bounties_required = self.options.BountyRequired.value @@ -477,6 +479,13 @@ class KH2World(World): if location in self.random_super_boss_list: self.random_super_boss_list.remove(location) + if self.options.LevelDepth == "level_1": + self.random_super_boss_list.remove(LocationName.Lvl50) + self.random_super_boss_list.remove(LocationName.Lvl99) + + if self.options.LevelDepth not in ["level_99", "level_99_sanity"] and LocationName.Lvl99 in self.random_super_boss_list: + self.random_super_boss_list.remove(LocationName.Lvl99) + if not self.options.SummonLevelLocationToggle and LocationName.Summonlvl7 in self.random_super_boss_list: self.random_super_boss_list.remove(LocationName.Summonlvl7)