KH2: Update all instances of multiworld.option_name to option.option_name (#2634)

* update the multiworld to options

* Update worlds/kh2/Rules.py

Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>

* does this work

* namine sketches

* wrong branch :)

---------

Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
This commit is contained in:
JaredWeakStrike 2024-03-11 19:52:16 -04:00 committed by GitHub
parent 3d56f3c096
commit a7384b4b63
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 65 additions and 63 deletions

View File

@ -54,29 +54,30 @@ def patch_kh2(self, output_directory):
formName = None formName = None
levelsetting = list() levelsetting = list()
if self.multiworld.Keyblade_Minimum[self.player].value > self.multiworld.Keyblade_Maximum[self.player].value: if self.options.Keyblade_Minimum.value > self.options.Keyblade_Maximum.value:
logging.info( logging.info(
f"{self.multiworld.get_file_safe_player_name(self.player)} has Keyblade Minimum greater than Keyblade Maximum") f"{self.multiworld.get_file_safe_player_name(self.player)} has Keyblade Minimum greater than Keyblade Maximum")
keyblademin = self.multiworld.Keyblade_Maximum[self.player].value keyblademin = self.options.Keyblade_Maximum.value
keyblademax = self.multiworld.Keyblade_Minimum[self.player].value keyblademax = self.options.Keyblade_Minimum.value
else: else:
keyblademin = self.multiworld.Keyblade_Minimum[self.player].value keyblademin = self.options.Keyblade_Minimum.value
keyblademax = self.multiworld.Keyblade_Maximum[self.player].value keyblademax = self.options.Keyblade_Maximum.value
if self.multiworld.LevelDepth[self.player] == "level_50": if self.options.LevelDepth == "level_50":
levelsetting.extend(exclusion_table["Level50"]) levelsetting.extend(exclusion_table["Level50"])
elif self.multiworld.LevelDepth[self.player] == "level_99": elif self.options.LevelDepth == "level_99":
levelsetting.extend(exclusion_table["Level99"]) levelsetting.extend(exclusion_table["Level99"])
elif self.multiworld.LevelDepth[self.player] != "level_1": elif self.options.LevelDepth != "level_1":
levelsetting.extend(exclusion_table["Level50Sanity"]) levelsetting.extend(exclusion_table["Level50Sanity"])
if self.multiworld.LevelDepth[self.player] == "level_99_sanity": if self.options.LevelDepth == "level_99_sanity":
levelsetting.extend(exclusion_table["Level99Sanity"]) levelsetting.extend(exclusion_table["Level99Sanity"])
mod_name = f"AP-{self.multiworld.seed_name}-P{self.player}-{self.multiworld.get_file_safe_player_name(self.player)}" mod_name = f"AP-{self.multiworld.seed_name}-P{self.player}-{self.multiworld.get_file_safe_player_name(self.player)}"
all_valid_locations = {location for location, data in all_locations.items()} all_valid_locations = {location for location, data in all_locations.items()}
for location in self.multiworld.get_filled_locations(self.player): for location in self.multiworld.get_filled_locations(self.player):
if location.name in all_valid_locations: if location.name in all_valid_locations:
data = all_locations[location.name] data = all_locations[location.name]
@ -142,11 +143,11 @@ def patch_kh2(self, output_directory):
if data.locid == 2: if data.locid == 2:
formDict = {1: "Valor", 2: "Wisdom", 3: "Limit", 4: "Master", 5: "Final"} formDict = {1: "Valor", 2: "Wisdom", 3: "Limit", 4: "Master", 5: "Final"}
formDictExp = { formDictExp = {
1: self.multiworld.Valor_Form_EXP[self.player].value, 1: self.options.Valor_Form_EXP.value,
2: self.multiworld.Wisdom_Form_EXP[self.player].value, 2: self.options.Wisdom_Form_EXP.value,
3: self.multiworld.Limit_Form_EXP[self.player].value, 3: self.options.Limit_Form_EXP.value,
4: self.multiworld.Master_Form_EXP[self.player].value, 4: self.options.Master_Form_EXP.value,
5: self.multiworld.Final_Form_EXP[self.player].value 5: self.options.Final_Form_EXP.value
} }
formexp = formDictExp[data.charName] formexp = formDictExp[data.charName]
formName = formDict[data.charName] formName = formDict[data.charName]
@ -172,7 +173,7 @@ def patch_kh2(self, output_directory):
for x in range(1, 7): for x in range(1, 7):
self.formattedFmlv["Summon"].append({ self.formattedFmlv["Summon"].append({
"Ability": 123, "Ability": 123,
"Experience": int(formExp[0][x] / self.multiworld.Summon_EXP[self.player].value), "Experience": int(formExp[0][x] / self.options.Summon_EXP.value),
"FormId": 0, "FormId": 0,
"FormLevel": x, "FormLevel": x,
"GrowthAbilityLevel": 0, "GrowthAbilityLevel": 0,
@ -192,7 +193,7 @@ def patch_kh2(self, output_directory):
increaseStat(self.random.randint(0, 3)) increaseStat(self.random.randint(0, 3))
itemcode = 0 itemcode = 0
self.formattedLvup["Sora"][self.i] = { self.formattedLvup["Sora"][self.i] = {
"Exp": int(soraExp[self.i] / self.multiworld.Sora_Level_EXP[self.player].value), "Exp": int(soraExp[self.i] / self.options.Sora_Level_EXP.value),
"Strength": self.strength, "Strength": self.strength,
"Magic": self.magic, "Magic": self.magic,
"Defense": self.defense, "Defense": self.defense,
@ -224,7 +225,7 @@ def patch_kh2(self, output_directory):
"Unknown": 0 "Unknown": 0
}) })
self.formattedLvup["Sora"][1] = { self.formattedLvup["Sora"][1] = {
"Exp": int(soraExp[1] / self.multiworld.Sora_Level_EXP[self.player].value), "Exp": int(soraExp[1] / self.options.Sora_Level_EXP.value),
"Strength": 2, "Strength": 2,
"Magic": 6, "Magic": 6,
"Defense": 2, "Defense": 2,
@ -379,35 +380,35 @@ def patch_kh2(self, output_directory):
} }
lucky_emblem_text = { lucky_emblem_text = {
0: "Your Goal is not Lucky Emblem. It is Hitlist or Three Proofs.", 0: "Your Goal is not Lucky Emblem. It is Hitlist or Three Proofs.",
1: f"Lucky Emblem Required: {self.multiworld.LuckyEmblemsRequired[self.player]} out of {self.multiworld.LuckyEmblemsAmount[self.player]}", 1: f"Lucky Emblem Required: {self.options.LuckyEmblemsRequired} out of {self.options.LuckyEmblemsAmount}",
2: "Your Goal is not Lucky Emblem. It is Hitlist or Three Proofs.", 2: "Your Goal is not Lucky Emblem. It is Hitlist or Three Proofs.",
3: f"Lucky Emblem Required: {self.multiworld.LuckyEmblemsRequired[self.player]} out of {self.multiworld.LuckyEmblemsAmount[self.player]}" 3: f"Lucky Emblem Required: {self.options.LuckyEmblemsRequired} out of {self.options.LuckyEmblemsAmount}"
} }
hitlist_text = { hitlist_text = {
0: "Your Goal is not Hitlist. It is Lucky Emblem or Three Proofs", 0: "Your Goal is not Hitlist. It is Lucky Emblem or Three Proofs",
1: "Your Goal is not Hitlist. It is Lucky Emblem or Three Proofs", 1: "Your Goal is not Hitlist. It is Lucky Emblem or Three Proofs",
2: f"Bounties Required: {self.multiworld.BountyRequired[self.player]} out of {self.multiworld.BountyAmount[self.player]}", 2: f"Bounties Required: {self.options.BountyRequired} out of {self.options.BountyAmount}",
3: f"Bounties Required: {self.multiworld.BountyRequired[self.player]} out of {self.multiworld.BountyAmount[self.player]}", 3: f"Bounties Required: {self.options.BountyRequired} out of {self.options.BountyAmount}",
} }
self.pooh_text = [ self.pooh_text = [
{ {
'id': 18326, 'id': 18326,
'en': f"Your goal is {goal_to_text[self.multiworld.Goal[self.player].value]}" 'en': f"Your goal is {goal_to_text[self.options.Goal.value]}"
}, },
{ {
'id': 18327, 'id': 18327,
'en': lucky_emblem_text[self.multiworld.Goal[self.player].value] 'en': lucky_emblem_text[self.options.Goal.value]
}, },
{ {
'id': 18328, 'id': 18328,
'en': hitlist_text[self.multiworld.Goal[self.player].value] 'en': hitlist_text[self.options.Goal.value]
} }
] ]
self.level_depth_text = [ self.level_depth_text = [
{ {
'id': 0x3BF1, 'id': 0x3BF1,
'en': f"Your Level Depth is {self.multiworld.LevelDepth[self.player].current_option_name}" 'en': f"Your Level Depth is {self.options.LevelDepth.current_option_name}"
} }
] ]
mod_dir = os.path.join(output_directory, mod_name + "_" + Utils.__version__) mod_dir = os.path.join(output_directory, mod_name + "_" + Utils.__version__)

View File

@ -935,7 +935,7 @@ def create_regions(self):
for level_region_name in level_region_list: for level_region_name in level_region_list:
KH2REGIONS[level_region_name] = [] KH2REGIONS[level_region_name] = []
if multiworld.LevelDepth[player] == "level_50": if self.options.LevelDepth == "level_50":
KH2REGIONS[RegionName.LevelsVS1] = [LocationName.Lvl2, LocationName.Lvl4, LocationName.Lvl7, LocationName.Lvl9, KH2REGIONS[RegionName.LevelsVS1] = [LocationName.Lvl2, LocationName.Lvl4, LocationName.Lvl7, LocationName.Lvl9,
LocationName.Lvl10] LocationName.Lvl10]
KH2REGIONS[RegionName.LevelsVS3] = [LocationName.Lvl12, LocationName.Lvl14, LocationName.Lvl15, KH2REGIONS[RegionName.LevelsVS3] = [LocationName.Lvl12, LocationName.Lvl14, LocationName.Lvl15,
@ -949,7 +949,7 @@ def create_regions(self):
KH2REGIONS[RegionName.LevelsVS15] = [LocationName.Lvl50] KH2REGIONS[RegionName.LevelsVS15] = [LocationName.Lvl50]
# level 99 # level 99
elif multiworld.LevelDepth[player] == "level_99": elif self.options.LevelDepth == "level_99":
KH2REGIONS[RegionName.LevelsVS1] = [LocationName.Lvl7, LocationName.Lvl9] KH2REGIONS[RegionName.LevelsVS1] = [LocationName.Lvl7, LocationName.Lvl9]
KH2REGIONS[RegionName.LevelsVS3] = [LocationName.Lvl12, LocationName.Lvl15, LocationName.Lvl17, KH2REGIONS[RegionName.LevelsVS3] = [LocationName.Lvl12, LocationName.Lvl15, LocationName.Lvl17,
LocationName.Lvl20] LocationName.Lvl20]
@ -965,7 +965,7 @@ def create_regions(self):
KH2REGIONS[RegionName.LevelsVS26] = [LocationName.Lvl99] KH2REGIONS[RegionName.LevelsVS26] = [LocationName.Lvl99]
# level sanity # level sanity
# has to be [] instead of {} for in # has to be [] instead of {} for in
elif multiworld.LevelDepth[player] in ["level_50_sanity", "level_99_sanity"]: elif self.options.LevelDepth in ["level_50_sanity", "level_99_sanity"]:
KH2REGIONS[RegionName.LevelsVS1] = [LocationName.Lvl2, LocationName.Lvl3, LocationName.Lvl4, LocationName.Lvl5, KH2REGIONS[RegionName.LevelsVS1] = [LocationName.Lvl2, LocationName.Lvl3, LocationName.Lvl4, LocationName.Lvl5,
LocationName.Lvl6, LocationName.Lvl6,
LocationName.Lvl7, LocationName.Lvl8, LocationName.Lvl9, LocationName.Lvl10] LocationName.Lvl7, LocationName.Lvl8, LocationName.Lvl9, LocationName.Lvl10]
@ -986,7 +986,7 @@ def create_regions(self):
LocationName.Lvl46, LocationName.Lvl47, LocationName.Lvl48, LocationName.Lvl46, LocationName.Lvl47, LocationName.Lvl48,
LocationName.Lvl49, LocationName.Lvl50] LocationName.Lvl49, LocationName.Lvl50]
# level 99 sanity # level 99 sanity
if multiworld.LevelDepth[player] == "level_99_sanity": if self.options.LevelDepth == "level_99_sanity":
KH2REGIONS[RegionName.LevelsVS15] = [LocationName.Lvl51, LocationName.Lvl52, LocationName.Lvl53, KH2REGIONS[RegionName.LevelsVS15] = [LocationName.Lvl51, LocationName.Lvl52, LocationName.Lvl53,
LocationName.Lvl54, LocationName.Lvl54,
LocationName.Lvl55, LocationName.Lvl56, LocationName.Lvl57, LocationName.Lvl55, LocationName.Lvl56, LocationName.Lvl57,
@ -1012,7 +1012,7 @@ def create_regions(self):
LocationName.Lvl95, LocationName.Lvl96, LocationName.Lvl97, LocationName.Lvl95, LocationName.Lvl96, LocationName.Lvl97,
LocationName.Lvl98, LocationName.Lvl99] LocationName.Lvl98, LocationName.Lvl99]
KH2REGIONS[RegionName.Summon] = [] KH2REGIONS[RegionName.Summon] = []
if multiworld.SummonLevelLocationToggle[player]: if self.options.SummonLevelLocationToggle:
KH2REGIONS[RegionName.Summon] = [LocationName.Summonlvl2, KH2REGIONS[RegionName.Summon] = [LocationName.Summonlvl2,
LocationName.Summonlvl3, LocationName.Summonlvl3,
LocationName.Summonlvl4, LocationName.Summonlvl4,

View File

@ -157,7 +157,7 @@ class KH2Rules:
def form_list_unlock(self, state: CollectionState, parent_form_list, level_required, fight_logic=False) -> bool: def form_list_unlock(self, state: CollectionState, parent_form_list, level_required, fight_logic=False) -> bool:
form_access = {parent_form_list} form_access = {parent_form_list}
if self.multiworld.AutoFormLogic[self.player] and state.has(ItemName.SecondChance, self.player) and not fight_logic: if self.world.options.AutoFormLogic and state.has(ItemName.SecondChance, self.player) and not fight_logic:
if parent_form_list == ItemName.MasterForm: if parent_form_list == ItemName.MasterForm:
if state.has(ItemName.DriveConverter, self.player): if state.has(ItemName.DriveConverter, self.player):
form_access.add(auto_form_dict[parent_form_list]) form_access.add(auto_form_dict[parent_form_list])
@ -170,8 +170,8 @@ class KH2Rules:
forms_available = 0 forms_available = 0
form_list = [ItemName.ValorForm, ItemName.WisdomForm, ItemName.LimitForm, ItemName.MasterForm, form_list = [ItemName.ValorForm, ItemName.WisdomForm, ItemName.LimitForm, ItemName.MasterForm,
ItemName.FinalForm] ItemName.FinalForm]
if self.world.multiworld.FinalFormLogic[self.player] != "no_light_and_darkness": if self.world.options.FinalFormLogic != "no_light_and_darkness":
if self.world.multiworld.FinalFormLogic[self.player] == "light_and_darkness": if self.world.options.FinalFormLogic == "light_and_darkness":
if state.has(ItemName.LightDarkness, self.player) and state.has_any(set(form_list), self.player): if state.has(ItemName.LightDarkness, self.player) and state.has_any(set(form_list), self.player):
forms_available += 1 forms_available += 1
form_list.remove(ItemName.FinalForm) form_list.remove(ItemName.FinalForm)
@ -273,34 +273,35 @@ class KH2WorldRules(KH2Rules):
def set_kh2_goal(self): def set_kh2_goal(self):
final_xemnas_location = self.multiworld.get_location(LocationName.FinalXemnasEventLocation, self.player) final_xemnas_location = self.multiworld.get_location(LocationName.FinalXemnasEventLocation, self.player)
if self.multiworld.Goal[self.player] == "three_proofs": if self.world.options.Goal == "three_proofs":
final_xemnas_location.access_rule = lambda state: self.kh2_has_all(three_proofs, state) final_xemnas_location.access_rule = lambda state: self.kh2_has_all(three_proofs, state)
if self.multiworld.FinalXemnas[self.player]: if self.world.options.FinalXemnas:
self.multiworld.completion_condition[self.player] = lambda state: state.has(ItemName.Victory, self.player, 1) self.multiworld.completion_condition[self.player] = lambda state: state.has(ItemName.Victory, self.player, 1)
else: else:
self.multiworld.completion_condition[self.player] = lambda state: self.kh2_has_all(three_proofs, state) self.multiworld.completion_condition[self.player] = lambda state: self.kh2_has_all(three_proofs, state)
# lucky emblem hunt # lucky emblem hunt
elif self.multiworld.Goal[self.player] == "lucky_emblem_hunt": elif self.world.options.Goal == "lucky_emblem_hunt":
final_xemnas_location.access_rule = lambda state: state.has(ItemName.LuckyEmblem, self.player, self.multiworld.LuckyEmblemsRequired[self.player].value) final_xemnas_location.access_rule = lambda state: state.has(ItemName.LuckyEmblem, self.player, self.world.options.LuckyEmblemsRequired.value)
if self.multiworld.FinalXemnas[self.player]: if self.world.options.FinalXemnas:
self.multiworld.completion_condition[self.player] = lambda state: state.has(ItemName.Victory, self.player, 1) self.multiworld.completion_condition[self.player] = lambda state: state.has(ItemName.Victory, self.player, 1)
else: else:
self.multiworld.completion_condition[self.player] = lambda state: state.has(ItemName.LuckyEmblem, self.player, self.multiworld.LuckyEmblemsRequired[self.player].value) self.multiworld.completion_condition[self.player] = lambda state: state.has(ItemName.LuckyEmblem, self.player, self.world.options.LuckyEmblemsRequired.value)
# hitlist if == 2 # hitlist if == 2
elif self.multiworld.Goal[self.player] == "hitlist": elif self.world.options.Goal == "hitlist":
final_xemnas_location.access_rule = lambda state: state.has(ItemName.Bounty, self.player, self.multiworld.BountyRequired[self.player].value) final_xemnas_location.access_rule = lambda state: state.has(ItemName.Bounty, self.player, self.world.options.BountyRequired.value)
if self.multiworld.FinalXemnas[self.player]: if self.world.options.FinalXemnas:
self.multiworld.completion_condition[self.player] = lambda state: state.has(ItemName.Victory, self.player, 1) self.multiworld.completion_condition[self.player] = lambda state: state.has(ItemName.Victory, self.player, 1)
else: else:
self.multiworld.completion_condition[self.player] = lambda state: state.has(ItemName.Bounty, self.player, self.multiworld.BountyRequired[self.player].value) self.multiworld.completion_condition[self.player] = lambda state: state.has(ItemName.Bounty, self.player, self.world.options.BountyRequired.value)
else: else:
final_xemnas_location.access_rule = lambda state: state.has(ItemName.Bounty, self.player, self.multiworld.BountyRequired[self.player].value) and \
state.has(ItemName.LuckyEmblem, self.player, self.multiworld.LuckyEmblemsRequired[self.player].value) final_xemnas_location.access_rule = lambda state: state.has(ItemName.Bounty, self.player, self.world.options.BountyRequired.value) and \
if self.multiworld.FinalXemnas[self.player]: state.has(ItemName.LuckyEmblem, self.player, self.world.options.LuckyEmblemsRequired.value)
if self.world.options.FinalXemnas:
self.multiworld.completion_condition[self.player] = lambda state: state.has(ItemName.Victory, self.player, 1) self.multiworld.completion_condition[self.player] = lambda state: state.has(ItemName.Victory, self.player, 1)
else: else:
self.multiworld.completion_condition[self.player] = lambda state: state.has(ItemName.Bounty, self.player, self.multiworld.BountyRequired[self.player].value) and \ self.multiworld.completion_condition[self.player] = lambda state: state.has(ItemName.Bounty, self.player, self.world.options.BountyRequired.value) and \
state.has(ItemName.LuckyEmblem, self.player, self.multiworld.LuckyEmblemsRequired[self.player].value) state.has(ItemName.LuckyEmblem, self.player, self.world.options.LuckyEmblemsRequired.value)
class KH2FormRules(KH2Rules): class KH2FormRules(KH2Rules):
@ -409,7 +410,7 @@ class KH2FightRules(KH2Rules):
# if skip rules are of return false # if skip rules are of return false
def __init__(self, world: KH2World) -> None: def __init__(self, world: KH2World) -> None:
super().__init__(world) super().__init__(world)
self.fight_logic = self.multiworld.FightLogic[self.player].current_key self.fight_logic = world.options.FightLogic.current_key
self.fight_region_rules = { self.fight_region_rules = {
RegionName.ShanYu: lambda state: self.get_shan_yu_rules(state), RegionName.ShanYu: lambda state: self.get_shan_yu_rules(state),
@ -935,7 +936,7 @@ class KH2FightRules(KH2Rules):
def get_cor_skip_first_rules(self, state: CollectionState) -> bool: def get_cor_skip_first_rules(self, state: CollectionState) -> bool:
# if option is not allow skips return false else run rules # if option is not allow skips return false else run rules
if not self.multiworld.CorSkipToggle[self.player]: if not self.world.options.CorSkipToggle:
return False return False
# easy: aerial dodge 3,master form,fire # easy: aerial dodge 3,master form,fire
# normal: aerial dodge 2, master form,fire # normal: aerial dodge 2, master form,fire

View File

@ -240,7 +240,7 @@ class KH2World(World):
self.hitlist_verify() self.hitlist_verify()
prio_hitlist = [location for location in self.multiworld.priority_locations[self.player].value if prio_hitlist = [location for location in self.options.priority_locations.value if
location in self.random_super_boss_list] location in self.random_super_boss_list]
for bounty in range(self.options.BountyAmount.value): for bounty in range(self.options.BountyAmount.value):
if prio_hitlist: if prio_hitlist:
@ -261,11 +261,11 @@ class KH2World(World):
if self.options.WeaponSlotStartHint: if self.options.WeaponSlotStartHint:
for location in all_weapon_slot: for location in all_weapon_slot:
self.multiworld.start_location_hints[self.player].value.add(location) self.options.start_location_hints.value.add(location)
if self.options.FillerItemsLocal: if self.options.FillerItemsLocal:
for item in filler_items: for item in filler_items:
self.multiworld.local_items[self.player].value.add(item) self.options.local_items.value.add(item)
# By imitating remote this doesn't have to be plandoded filler anymore # By imitating remote this doesn't have to be plandoded filler anymore
# for location in {LocationName.JunkMedal, LocationName.JunkMedal}: # for location in {LocationName.JunkMedal, LocationName.JunkMedal}:
# self.plando_locations[location] = random_stt_item # self.plando_locations[location] = random_stt_item
@ -325,7 +325,7 @@ class KH2World(World):
self.item_quantity_dict[random_ability] -= 1 self.item_quantity_dict[random_ability] -= 1
self.total_locations -= 1 self.total_locations -= 1
self.slot_data_donald_weapon = [item_name.name for item_name in self.donald_weapon_abilities] self.slot_data_donald_weapon = [item_name.name for item_name in self.donald_weapon_abilities]
if not self.multiworld.DonaldGoofyStatsanity[self.player]: if not self.options.DonaldGoofyStatsanity:
# pre plando donald get bonuses # pre plando donald get bonuses
self.donald_get_bonus_abilities += [self.create_item(random_prog_ability)] self.donald_get_bonus_abilities += [self.create_item(random_prog_ability)]
self.total_locations -= 1 self.total_locations -= 1
@ -385,7 +385,7 @@ class KH2World(World):
location.place_locked_item(random_ability) location.place_locked_item(random_ability)
self.goofy_weapon_abilities.remove(random_ability) self.goofy_weapon_abilities.remove(random_ability)
if not self.multiworld.DonaldGoofyStatsanity[self.player]: if not self.options.DonaldGoofyStatsanity:
# plando goofy get bonuses # plando goofy get bonuses
goofy_get_bonus_location_pool = [self.multiworld.get_location(location, self.player) for location in goofy_get_bonus_location_pool = [self.multiworld.get_location(location, self.player) for location in
Goofy_Checks.keys() if Goofy_Checks[location].yml != "Keyblade"] Goofy_Checks.keys() if Goofy_Checks[location].yml != "Keyblade"]
@ -406,7 +406,7 @@ class KH2World(World):
location.place_locked_item(random_ability) location.place_locked_item(random_ability)
self.donald_weapon_abilities.remove(random_ability) self.donald_weapon_abilities.remove(random_ability)
if not self.multiworld.DonaldGoofyStatsanity[self.player]: if not self.options.DonaldGoofyStatsanity:
# plando goofy get bonuses # plando goofy get bonuses
donald_get_bonus_location_pool = [self.multiworld.get_location(location, self.player) for location in donald_get_bonus_location_pool = [self.multiworld.get_location(location, self.player) for location in
Donald_Checks.keys() if Donald_Checks[location].yml != "Keyblade"] Donald_Checks.keys() if Donald_Checks[location].yml != "Keyblade"]
@ -428,7 +428,7 @@ class KH2World(World):
""" """
Making sure the player doesn't put too many abilities in their starting inventory. Making sure the player doesn't put too many abilities in their starting inventory.
""" """
for item, value in self.multiworld.start_inventory[self.player].value.items(): for item, value in self.options.start_inventory.value.items():
if item in ActionAbility_Table \ if item in ActionAbility_Table \
or item in SupportAbility_Table or exclusion_item_table["StatUps"] \ or item in SupportAbility_Table or exclusion_item_table["StatUps"] \
or item in DonaldAbility_Table or item in GoofyAbility_Table: or item in DonaldAbility_Table or item in GoofyAbility_Table:
@ -461,7 +461,7 @@ class KH2World(World):
""" """
Making sure hitlist have amount>=required. Making sure hitlist have amount>=required.
""" """
for location in self.multiworld.exclude_locations[self.player].value: for location in self.options.exclude_locations.value:
if location in self.random_super_boss_list: if location in self.random_super_boss_list:
self.random_super_boss_list.remove(location) self.random_super_boss_list.remove(location)
@ -491,7 +491,7 @@ class KH2World(World):
self.options.BountyAmount.value = temp self.options.BountyAmount.value = temp
if self.options.BountyStartingHintToggle: if self.options.BountyStartingHintToggle:
self.multiworld.start_hints[self.player].value.add(ItemName.Bounty) self.options.start_hints.value.add(ItemName.Bounty)
if ItemName.ProofofNonexistence in self.item_quantity_dict: if ItemName.ProofofNonexistence in self.item_quantity_dict:
del self.item_quantity_dict[ItemName.ProofofNonexistence] del self.item_quantity_dict[ItemName.ProofofNonexistence]
@ -503,19 +503,19 @@ class KH2World(World):
# Option to turn off all superbosses. Can do this individually but its like 20+ checks # Option to turn off all superbosses. Can do this individually but its like 20+ checks
if not self.options.SuperBosses: if not self.options.SuperBosses:
for superboss in exclusion_table["SuperBosses"]: for superboss in exclusion_table["SuperBosses"]:
self.multiworld.exclude_locations[self.player].value.add(superboss) self.options.exclude_locations.value.add(superboss)
# Option to turn off Olympus Colosseum Cups. # Option to turn off Olympus Colosseum Cups.
if self.options.Cups == "no_cups": if self.options.Cups == "no_cups":
for cup in exclusion_table["Cups"]: for cup in exclusion_table["Cups"]:
self.multiworld.exclude_locations[self.player].value.add(cup) self.options.exclude_locations.value.add(cup)
# exclude only hades paradox. If cups and hades paradox then nothing is excluded # exclude only hades paradox. If cups and hades paradox then nothing is excluded
elif self.options.Cups == "cups": elif self.options.Cups == "cups":
self.multiworld.exclude_locations[self.player].value.add(LocationName.HadesCupTrophyParadoxCups) self.options.exclude_locations.value.add(LocationName.HadesCupTrophyParadoxCups)
if not self.options.AtlanticaToggle: if not self.options.AtlanticaToggle:
for loc in exclusion_table["Atlantica"]: for loc in exclusion_table["Atlantica"]:
self.multiworld.exclude_locations[self.player].value.add(loc) self.options.exclude_locations.value.add(loc)
def level_subtraction(self): def level_subtraction(self):
""" """