KH2: New Unit Test and better keyblade fill (#1744)

__init__:
 - Added exception for if the player has too many excluded abilities on keyblades.
 - Fixed Action Abilities only on keyblades from breaking.
 - Added proper support for ability quantity's instead of 1 of the ability 
 - Moved filling the localitems slot data to init instead of generate_output so I could easily unit test it

TestSlotData:
- Checks if the "localItems" part of slot data is filled. This is used for keeping track of local items and making sure nothing dupes
This commit is contained in:
JaredWeakStrike
2023-04-23 16:20:43 -04:00
committed by GitHub
parent 62a265cc31
commit 06a25a903e
3 changed files with 50 additions and 14 deletions

View File

@@ -6,8 +6,7 @@ import Utils
import zipfile
from .Items import item_dictionary_table, CheckDupingItems
from .Locations import all_locations, SoraLevels, exclusion_table, AllWeaponSlot
from .Names import LocationName
from .Locations import all_locations, SoraLevels, exclusion_table
from .XPValues import lvlStats, formExp, soraExp
from worlds.Files import APContainer
@@ -83,7 +82,7 @@ def patch_kh2(self, output_directory):
elif self.multiworld.LevelDepth[self.player] == "level_99":
levelsetting.extend(exclusion_table["Level99"])
elif self.multiworld.LevelDepth[self.player] in ["level_50_sanity", "level_99_sanity"]:
elif self.multiworld.LevelDepth[self.player] != "level_1":
levelsetting.extend(exclusion_table["Level50Sanity"])
if self.multiworld.LevelDepth[self.player] == "level_99_sanity":
@@ -96,9 +95,6 @@ def patch_kh2(self, output_directory):
data = all_locations[location.name]
if location.item.player == self.player:
itemcode = item_dictionary_table[location.item.name].kh2id
if location.item.name in slotDataDuping and \
location.name not in AllWeaponSlot:
self.LocalItems[location.address] = item_dictionary_table[location.item.name].code
else:
itemcode = 90 # castle map