diff --git a/KH3Randomizer/Components/OptionComponents/OptionsSubsection.razor b/KH3Randomizer/Components/OptionComponents/OptionsSubsection.razor
index 660bec4..6531b56 100644
--- a/KH3Randomizer/Components/OptionComponents/OptionsSubsection.razor
+++ b/KH3Randomizer/Components/OptionComponents/OptionsSubsection.razor
@@ -129,7 +129,7 @@
}
- else if (option.Key == "Battle Portals")
+ else if (option.Key == "Battlegates")
{
diff --git a/KH3Randomizer/Components/Pools.razor b/KH3Randomizer/Components/Pools.razor
index 92bf101..5ac124f 100644
--- a/KH3Randomizer/Components/Pools.razor
+++ b/KH3Randomizer/Components/Pools.razor
@@ -258,7 +258,7 @@
- @foreach (var (name, value) in this.exceptions.Where(x => x.Key == "Can Be None" || x.Key == "Default Abilities" || x.Key == "Default Critical Abilities" || x.Key == "Early Critical Abilities" || x.Key == "Extra Movement" || x.Key == "Safe Magic Locations"
+ @foreach (var (name, value) in this.exceptions.Where(x => x.Key == "Can Be None" || x.Key == "Default Base Abilities" || x.Key == "Default Critical Abilities" || x.Key == "Default Bonus Critical Abilities" || x.Key == "Extra Movement" || x.Key == "Safe Magic Locations"
|| x.Key == "Replace Classic Kingdom Reward" || x.Key == "Replace Little Chef's Reward" || x.Key == "Replace Golden Herc Rewards" || x.Key == "Replace Sora Collection Rewards" || x.Key == "Replace Photo Missions"))
{
@@ -405,15 +405,15 @@
private Dictionary exceptionDescriptions = new Dictionary
{
{ "Can Be None", "Allows None to appear in all Pools. For instance, opening a chest may have nothing in it." },
- { "Default Abilities", "Keeps Sora's base abilities from being randomized, like Pole Spin, Dodge, Block, etc." },
- { "Default Critical Abilities", "Keeps Sora's base critical abilities from being randomized, like Critical Converter, Critical Counter, etc." },
- { "Early Critical Abilities", "Keeps Sora's early critical abilities earned from being randomized, like Air Slide, Superslide, etc." },
+ { "Default Base Abilities", "Prevents default starting abilities from being randomized like Block, Dodge Roll, Pole Spin, etc." },
+ { "Default Critical Abilities", "Prevents Critical Counter, Critical Recharge, and Critical Converter from being randomized." },
+ { "Default Bonus Critical Abilities", "Prevents abilities from Bonuses when starting on Critical Mode from being randomized like Aerial Recovery, Combo Master, etc." },
{ "Extra Movement", "Adds additional movement abilities that overwrite materials in the Pools, like Dodge Roll, Air Slide, etc. - This can cause empty checks." },
{ "Safe Magic Locations", "Attempts to add Magic only in places where a retry will not remove it from Sora's magic pool." },
- { "Replace Classic Kingdom Reward", "Replaces the reward for getting all High-scores with something marked as replaceable." },
+ { "Replace Classic Kingdom Reward", "Replaces the reward for getting High Scores on all Classic Kingdom minigames with something marked as replaceable." },
{ "Replace Little Chef's Reward", "Replaces the reward for completing all Little Chef's recipes with something marked as replaceable." },
- { "Replace Golden Herc Rewards", "Replaces the reward for finding all Golden Herc statues with something marked as replaceable." },
+ { "Replace Golden Herc Rewards", "Replaces the rewards for picking up Golden Herc statues and returning all Golden Herc statues with something marked as replaceable." },
{ "Replace Sora Collection Rewards", "Replaces the reward for collecting 222 and 333 Soras in the Final World with something marked as replaceable." },
{ "Replace Photo Missions", "Replaces the reward for taking pictures of specific enemies, party members or locations." },
@@ -450,9 +450,9 @@
{ "Moogle Workshop", "Synthesis Items, Photo Mission Rewards and Abilities gained from leveling up Keyblades." },
{ "Fullcourse Abilities", "Abilities gained for a limited amount of time from eating fullcourse meals." },
{ "Lucky Emblems", "Rewards earned for finding Lucky Emblems." },
- { "Flantastic Flans", "Rewards earned for max completing a Flan Missions." },
+ { "Flantastic Flans", "Rewards earned for getting a certain amount of points in Flan Missions." },
{ "Minigames", "Rewards earned for obtaining an A-Rank in a Minigame." },
- { "Battle Portals", "Rewards earned for completing a Battle Portal." },
+ { "Battlegates", "Rewards earned for completing a Battlegate." },
{ "Base Sora Stats", "Stats related to Sora's initial Max Health, Magic and Focus Points." },
{ "Level Up Stats", "Stats for Sora's Level Up Attack, Magic, Defense and Ability Points." },
diff --git a/KH3Randomizer/Components/Review.razor b/KH3Randomizer/Components/Review.razor
index 9355267..a80afc7 100644
--- a/KH3Randomizer/Components/Review.razor
+++ b/KH3Randomizer/Components/Review.razor
@@ -281,7 +281,7 @@
private Dictionary exceptionColors = new Dictionary
{
{ "Can Be None", "background: #56adff;" },
- { "Default Abilities", "background: #56adff;" },
+ { "Default Base Abilities", "background: #56adff;" },
};
private Dictionary hintColors = new Dictionary
diff --git a/KH3Randomizer/Data/Extensions.cs b/KH3Randomizer/Data/Extensions.cs
index b8e3dc5..cb4faaf 100644
--- a/KH3Randomizer/Data/Extensions.cs
+++ b/KH3Randomizer/Data/Extensions.cs
@@ -455,16 +455,16 @@ public static string KeyIdToDisplay(this string input)
"IW_187" => "Oblivion Upgrade 8",
"IW_188" => "Oblivion Upgrade 9",
"IW_189" => "Oblivion Upgrade 10",
- "EVENT_001" => "Forge Goofy's Shield",
- "EVENT_002" => "Find 1st Golden Herc Statue",
- "EVENT_003" => "Find 2nd Golden Herc Statue",
- "EVENT_004" => "Find 3rd Golden Herc Statue",
- "EVENT_005" => "Find 4th Golden Herc Statue",
- "EVENT_006" => "Find 5th Golden Herc Statue",
- "EVENT_007" => "Return All Golden Herc Statues",
- "EVENT_008" => "Defeat the Unversed before the Power Plant",
- "EVENT_009" => "Rescue the Trapped Big Hero 6 Members",
- "TresUIMobilePortalDataAsset" => "Complete All Classic Mickey Games",
+ "EVENT_001" => "Forge Knight's Shield+ for Goofy",
+ "EVENT_002" => "Find Golden Herc Figure in Thebes: Alleyway, In Building",
+ "EVENT_003" => "Find Golden Herc Figure in Thebes: Garden, Digged-Up Pit",
+ "EVENT_004" => "Find Golden Herc Figure in Thebes: Garden, In Building",
+ "EVENT_005" => "Find Golden Herc Figure in Thebes: Overlook, On Statue's Shield",
+ "EVENT_006" => "Find Golden Herc Figure in Thebes: Agora, Near Save Point",
+ "EVENT_007" => "Return All Golden Herc Figures",
+ "EVENT_008" => "The Factory: Second Floor Unversed",
+ "EVENT_009" => "Rescue Big Hero 6 from Darkubes",
+ "TresUIMobilePortalDataAsset" => "Complete All Classic Kingdom Minigames",
"EVENT_KEYBLADE_001" => "Complete Olympus",
"EVENT_KEYBLADE_002" => "Complete Twilight Town",
"EVENT_KEYBLADE_003" => "Complete Toy Box",
@@ -474,42 +474,42 @@ public static string KeyIdToDisplay(this string input)
"EVENT_KEYBLADE_007" => "Complete Arendelle",
"EVENT_KEYBLADE_008" => "Complete The Caribbean",
"EVENT_KEYBLADE_009" => "Complete San Fransokyo",
- "EVENT_KEYBLADE_010" => "Complete All of Tiny Chef's Recipes",
+ "EVENT_KEYBLADE_010" => "Complete All Recipes",
"EVENT_KEYBLADE_011" => "Defeat Demon Tide in The Keyblade Graveyard",
"EVENT_KEYBLADE_012" => "Return the Proof of Promises to the Moogle",
"EVENT_KEYBLADE_013" => "Return the Proof of Times Past to the Moogle",
"EVENT_HEARTBINDER_001" => "Received After Returning to Yen Sid's Tower",
- "EVENT_HEARTBINDER_002" => "Complete Verum Rex: Beat of Lead in Toy Box",
- "EVENT_HEARTBINDER_003" => "Received After Putting Out the Fires in Monstropolis",
- "EVENT_HEARTBINDER_004" => "Complete Flash Tracer in San Fransokyo",
- "EVENT_REPORT_001a" or "EVENT_REPORT_001b" => "Complete Battle Portal 1 in Olympus",
- "EVENT_REPORT_002a" or "EVENT_REPORT_002b" => "Complete Battle Portal 2 in Olympus",
- "EVENT_REPORT_003a" or "EVENT_REPORT_003b" => "Complete Battle Portal 3 in Twilight Town",
- "EVENT_REPORT_004a" or "EVENT_REPORT_004b" => "Complete Battle Portal 4 in Toy Box",
- "EVENT_REPORT_005a" or "EVENT_REPORT_005b" => "Complete Battle Portal 5 in Toy Box",
- "EVENT_REPORT_006a" or "EVENT_REPORT_006b" => "Complete Battle Portal 6 in Kingdom of Corona",
- "EVENT_REPORT_007a" or "EVENT_REPORT_007b" => "Complete Battle Portal 7 in Kingdom of Corona",
- "EVENT_REPORT_008a" or "EVENT_REPORT_008b" => "Complete Battle Portal 8 in Monstropolis",
- "EVENT_REPORT_009a" or "EVENT_REPORT_009b" => "Complete Battle Portal 9 in Arendelle",
- "EVENT_REPORT_010a" or "EVENT_REPORT_010b" => "Complete Battle Portal 10 in The Caribbean",
- "EVENT_REPORT_011a" or "EVENT_REPORT_011b" => "Complete Battle Portal 11 in San Fransokyo",
- "EVENT_REPORT_012a" or "EVENT_REPORT_012b" => "Complete Battle Portal 12 in San Fransokyo",
- "EVENT_REPORT_013a" or "EVENT_REPORT_013b" => "Complete Battle Portal 13 in The Keyblade Graveyard",
+ "EVENT_HEARTBINDER_002" => "Complete Verum Rex: Beat of Lead during the Story",
+ "EVENT_HEARTBINDER_003" => "The Power Plant: Tank Yard Heartless",
+ "EVENT_HEARTBINDER_004" => "Complete Flash Tracer during the Story",
+ "EVENT_REPORT_001a" or "EVENT_REPORT_001b" => "Complete Battlegate 1 in Olympus (Realm of the Gods: Courtyard)",
+ "EVENT_REPORT_002a" or "EVENT_REPORT_002b" => "Complete Battlegate 2 in Olympus (Realm of the Gods: Apex)",
+ "EVENT_REPORT_003a" or "EVENT_REPORT_003b" => "Complete Battlegate 3 in Twilight Town (The Old Mansion)",
+ "EVENT_REPORT_004a" or "EVENT_REPORT_004b" => "Complete Battlegate 4 in Toy Box (Galaxy Toys: Kid Korral)",
+ "EVENT_REPORT_005a" or "EVENT_REPORT_005b" => "Complete Battlegate 5 in Toy Box (Galaxy Toys: Main Floor: 1F)",
+ "EVENT_REPORT_006a" or "EVENT_REPORT_006b" => "Complete Battlegate 6 in Kingdom of Corona (The Forest: Wetlands)",
+ "EVENT_REPORT_007a" or "EVENT_REPORT_007b" => "Complete Battlegate 7 in Kingdom of Corona (The Forest: Hills)",
+ "EVENT_REPORT_008a" or "EVENT_REPORT_008b" => "Complete Battlegate 8 in Monstropolis (The Power Plant: Tank Yard)",
+ "EVENT_REPORT_009a" or "EVENT_REPORT_009b" => "Complete Battlegate 9 in Arendelle (The Labyrinth of Ice: Middle Tier)",
+ "EVENT_REPORT_010a" or "EVENT_REPORT_010b" => "Complete Battlegate 10 in The Caribbean (The High Seas: Huddled Isles)",
+ "EVENT_REPORT_011a" or "EVENT_REPORT_011b" => "Complete Battlegate 11 in San Fransokyo (The City: North District)",
+ "EVENT_REPORT_012a" or "EVENT_REPORT_012b" => "Complete Battlegate 12 in San Fransokyo (The City: Central District)",
+ "EVENT_REPORT_013a" or "EVENT_REPORT_013b" => "Complete Battlegate 13 in The Keyblade Graveyard (The Badlands)",
"EVENT_REPORT_014" => "Defeat Dark Inferno",
"EVENT_CKGAME_001" => "Complete Twilight Town",
"EVENT_KEYITEM_001" => "Received After Returning to Yen Sid's Tower",
- "EVENT_KEYITEM_002" => "Received During First Visit to Hiro's Garage",
+ "EVENT_KEYITEM_002" => "Meet Big Hero 6 in Hiro's Garage",
"EVENT_KEYITEM_003" => "Find All Lucky Emblems",
"EVENT_KEYITEM_004" => "Complete the Game on Critical",
"EVENT_KEYITEM_005" => "Defeat Yozora",
"EVENT_DATAB_001" => "Defeat Data Master Xehanort",
- "EVENT_DATAB_002" => "Defeat Data Ansem: Seeker of Darkness",
+ "EVENT_DATAB_002" => "Defeat Data Ansem",
"EVENT_DATAB_003" => "Defeat Data Xemnas",
"EVENT_DATAB_004" => "Defeat Data Xigbar",
"EVENT_DATAB_005" => "Defeat Data Luxord",
"EVENT_DATAB_006" => "Defeat Data Larxene",
"EVENT_DATAB_007" => "Defeat Data Marluxia",
- "EVENT_DATAB_008" => "Defeat Data Saix",
+ "EVENT_DATAB_008" => "Defeat Data Saïx",
"EVENT_DATAB_009" => "Defeat Data Terra-Xehanort",
"EVENT_DATAB_010" => "Defeat Data Dark Riku",
"EVENT_DATAB_011" => "Defeat Data Vanitas",
@@ -524,108 +524,108 @@ public static string KeyIdToDescription(this string input)
{
return input.Replace("\u0000", "") switch
{
- "Vbonus_001" => "After the first battle in Olympus - Cliff Ascent",
- "Vbonus_002" => "After the 1st Flame Core battle in Olympus - Thebes: Agora",
- "Vbonus_005" => "After the 2nd Flame Core battle in Olympus - Thebes: Overlook",
- "Vbonus_006" => "After the 3rd Flame Core battle in Olympus - Thebes: Gardens",
- "Vbonus_007" => "After the timed Heartless battle in Olympus - Thebes: Alleyway",
- "Vbonus_008" => "After the Rock Troll battle in Olympus - Thebes: Agora",
+ "Vbonus_001" => "Olympus - Mount Olympus: Cliff Ascent Heartless",
+ "Vbonus_002" => "Olympus - Thebes: Agora Flame Cores",
+ "Vbonus_005" => "Olympus - Thebes: Overlook Flame Cores",
+ "Vbonus_006" => "Olympus - Thebes: Gardens Flame Cores",
+ "Vbonus_007" => "Olympus - Thebes: Alleyway Heartless",
+ "Vbonus_008" => "Defeat Rock Troll in Olympus - Thebes: Agora",
"Vbonus_009" => "After the Water Core(?) battle on the way up mountain in Olympus",
- "Vbonus_010" => "After the Rock Titan boss battle in Olympus",
- "Vbonus_011" => "After the Satyr Mob battle in Olympus - Realm of the Gods: Courtyard",
- "Vbonus_013" => "After the Tornado Titan boss battle in Olympus",
- "Vbonus_014" => "After the Demon Tide battle in Twilight Town - Tram Common",
- "Vbonus_015" => "After the Powerwild Mob battle in Twilight Town - The Woods",
- "Vbonus_016" => "After the Heartless & Nobody Mob battle in Twilight Town - The Old Mansion",
- "Vbonus_017" => "After the Heartless Mob battle in Toy Box - Andy's House",
- "Vbonus_018" => "After the Gigas Mob battle in Toy Box - Galaxy Toys Main Floor: 1F",
- "Vbonus_019" => "After the Supreme Smashes battle in Toy Box - Action Figures",
- "Vbonus_020" => "After the Angelic Amber boss battle in Toy Box - Babies & Toddlers: Dolls",
- "Vbonus_021" => "After the UFO battle in Toy Box - Babies & Toddlers: Outdoors",
- "Vbonus_022" => "After the Verum Rex: Beat of Lead minigame in Toy Box",
- "Vbonus_023" => "After the King of Toys boss battle in Toy Box",
- "Vbonus_024" => "After the 1st Heartless Mob battle in Kingdom of Corona - Hills",
- "Vbonus_025" => "After the 2nd Heartless Mob battle in Kingdom of Corona - Hills",
- "Vbonus_026" => "After the Reapers Nobody battle in Kingdom of Corona - Hills",
- "Vbonus_027" => "After the Chaos Carriage Heartless battle in Kingdom of Corona",
- "Vbonus_028" => "After the Reapers Nobody battle in the Castle Town in Kingdom of Corona",
- "Vbonus_029" => "After the Heartless Mob battle in Kingdom of Corona - Tower",
- "Vbonus_030" => "After the Grim Guardianess boss battle in Kingdom of Corona - Tower",
- "Vbonus_032" => "After the Unversed battle in Monstropolis - Lobby & Offices",
- "Vbonus_033" => "After the Unversed battle in Monstropolis - Laugh Floor",
- "Vbonus_034" => "After the battle to make Boo laugh in in Monstropolis - The Door Vault: Upper Level",
- "Vbonus_035" => "After the Heartless & Unversed battle in Monstropolis - The Factory: Second Floor",
- "Vbonus_036" => "After the battle to make Boo laugh in Monstropolis - The Factory: Second Floor",
- "Vbonus_037" => "After the Heartless & Unversed battle in Monstropolis - The Power Plant: Accessway",
- "Vbonus_038" => "After the Heartless Mob battle in Monstropolis - The Power Plant: Tank Yard",
- "Vbonus_039" => "After the Unversed battle in Monstropolis - The Power Plant: Tank Yard",
- "Vbonus_040" => "After the Lump of Horror boss battle in Monstropolis - The Door Vault: Service Area",
- "Vbonus_041" => "After the Rock Troll battle in Arendelle",
- "Vbonus_042" => "After the first Ninja Nobody battle in Arendelle - The Labyrinth of Ice",
- "Vbonus_043" => "After the second Ninja Nobody battle in Arendelle - The Labyrinth of Ice",
- "Vbonus_044" => "After the third Ninja Nobody battle in Arendelle - The Labyrinth of Ice",
- "Vbonus_045" => "After the fourth Ninja Nobody battle in Arendelle - The Labyrinth of Ice",
- "Vbonus_047" => "After the Marshmallow boss battle in Arendelle",
- "Vbonus_048" => "After the 3 Frost Serpent Heartless battle in Arendelle",
- "Vbonus_049" => "After the Heartless Mob battle in Valley of Ice in Arendelle",
- "Vbonus_050" => "After the Skoll boss battle in Arendelle",
- "Vbonus_051" => "After the Metal Troll battle on the bridge in San Fransokyo",
- "Vbonus_052" => "After the meeting Hiro in the garage in San Fransokyo",
- "Vbonus_053" => "After the Heartless Mob battle on the roof in San Fransokyo - The City (Day)",
- "Vbonus_054" => "After the Catastrochorus boss battle in San Fransokyo - The City (Day)",
- "Vbonus_055" => "After the rescue mission for the Big Hero 6 team in San Fransokyo - The City (Night)",
- "Vbonus_056" => "After the Darkube boss battle in San Fransokyo - The City (Night)",
- "Vbonus_057" => "After the Dark Baymax boss battle in San Fransokyo - The City (Day)",
- "Vbonus_058" => "After catching the Black Pearl in Davy Jones Locker in The Caribbean",
- "Vbonus_059" => "After the first ship battle in The Caribbean",
- "Vbonus_060" => "After the Raging Vulture boss battle in The Caribbean",
- "Vbonus_061" => "After the Lightning Angler boss battle in The Caribbean",
- "Vbonus_062" => "After the Luxord ship race to Port Royal in The Caribbean",
- "Vbonus_063" => "After the second ship battle in The Caribbean",
- "Vbonus_064" => "After the third ship battle in The Caribbean",
- "Vbonus_065" => "After the Kraken boss battle in The Caribbean",
- "Vbonus_066" => "After the Davy Jones boss battle in The Caribbean",
- "Vbonus_067" => "After the Anti-Aqua boss battle in The Dark World",
- "Vbonus_068" => "After the last Lich boss battle in San Fransokyo",
- "Vbonus_069" => "After the Heartless, Nobody & Unversed Mob battle in The Keyblade Graveyard",
- "Vbonus_070" => "After the Demon Tide boss battle in The Keyblade Graveyard",
- "Vbonus_071" => "After the Xigbar & Dark Riku boss battle in The Keyblade Graveyard",
- "Vbonus_072" => "After the Luxord, Larxene & Marluxia boss battle in The Keyblade Graveyard",
- "Vbonus_073" => "After the Terra-Xehanort & Vanitas boss battle in The Keyblade Graveyard",
- "Vbonus_074" => "After the Saix boss battle in The Keyblade Graveyard",
- "Vbonus_075" => "After the Young Xehanort, Ansem & Xemnas boss battle in The Keyblade Graveyard",
- "Vbonus_076" => "After the Heartless, Nobody & Unversed Mob battle in The Keyblade Graveyard",
- "Vbonus_082" => "After the Darkside boss battle in The Final World",
+ "Vbonus_010" => "Defeat Rock Titan in Olympus: Mount Olympus - Summit",
+ "Vbonus_011" => "Olympus - Realm of the Gods: Courtyard Satyrs",
+ "Vbonus_013" => "Defeat Tornado Titan in Olympus: Realm of the Gods",
+ "Vbonus_014" => "Defeat Demon Tide in Twilight Town - The Neighborhood: Tram Common",
+ "Vbonus_015" => "Twilight Town - The Woods Powerwilds",
+ "Vbonus_016" => "Twilight Town - The Old Mansion Heartless & Nobodies",
+ "Vbonus_017" => "Toy Box - Andy's House Heartless",
+ "Vbonus_018" => "Toy Box - Galaxy Toys: Main Floor: 1F Gigas",
+ "Vbonus_019" => "Toy Box - Galaxy Toys: Action Figures Supreme Smashers",
+ "Vbonus_020" => "Defeat Angelic Amber in Toy Box - Babies & Toddlers: Dolls",
+ "Vbonus_021" => "After the UFO Mini-Boss in Toy Box - Babies & Toddlers: Outdoors",
+ "Vbonus_022" => "Complete Verum Rex: Beat of Lead during the Story",
+ "Vbonus_023" => "Defeat King of Toys in Toy Box: Galaxy Toys",
+ "Vbonus_024" => "Kingdom of Corona - The Forest: Hills Heartless",
+ "Vbonus_025" => "Kingdom of Corona - The Forest: Hills Chief Puffs & Puffballs",
+ "Vbonus_026" => "Kingdom of Corona - The Forest: Hills Reapers",
+ "Vbonus_027" => "Defeat Chaos Carriage in Kingdom of Corona",
+ "Vbonus_028" => "Kingdom of Corona - The Kingdom: Wharf Nobodies",
+ "Vbonus_029" => "Kingdom of Corona - The Forest: Tower Heartless",
+ "Vbonus_030" => "Defeat Grim Guardianess in Kingdom of Corona - The Forest: Tower",
+ "Vbonus_032" => "Monstropolis - Monsters Inc.: Lobby & Offices Unversed",
+ "Vbonus_033" => "Monstropolis - Monsters Inc.: Laugh Floor Unversed",
+ "Vbonus_034" => "Monstropolis - The Door Vault: Upper Level Heartless",
+ "Vbonus_035" => "Monstropolis - The Factory: Second Floor Heartless & Unversed",
+ "Vbonus_036" => "Monstropolis - The Factory: Second Floor Unversed",
+ "Vbonus_037" => "Monstropolis - The Power Plant: Accessway Heartless & Unversed",
+ "Vbonus_038" => "Monstropolis - The Power Plant: Tank Yard Heartless",
+ "Vbonus_039" => "Monstropolis - The Power Plant: Tank Yard Unversed",
+ "Vbonus_040" => "Defeat Lump of Horror in Monstropolis - The Door Vault: Service Area",
+ "Vbonus_041" => "Defeat Rock Troll & Winterhorns in Arendelle - The North Mountain: Gorge",
+ "Vbonus_042" => "The Labyrinth of Ice: Middle Tier Ninjas I",
+ "Vbonus_043" => "The Labyrinth of Ice: Lower Tier Ninjas II",
+ "Vbonus_044" => "The Labyrinth of Ice: Middle Tier Ninjas III",
+ "Vbonus_045" => "The Labyrinth of Ice: Middle Tier Ninjas IV",
+ "Vbonus_047" => "Defeat Marshmallow in Arendelle - The North Mountain: Mountain Ridge",
+ "Vbonus_048" => "Frozen Slider Frost Serpents",
+ "Vbonus_049" => "Arendelle - The North Mountain: The Valley of Ice Heartless",
+ "Vbonus_050" => "Defeat Skoll in Arendelle",
+ "Vbonus_051" => "Defeat Metal Troll in San Fransokyo: The Bridge",
+ "Vbonus_052" => "Meet Big Hero 6 in San Fransokyo - Hiro's Garage",
+ "Vbonus_053" => "The City Heartless at Hiro's indicator in San Fransokyo - The City (Day)",
+ "Vbonus_054" => "Defeat Catastrochorus in San Fransokyo - The City (Day)",
+ "Vbonus_055" => "Rescue Big Hero 6 from Darkubes in San Fransokyo - The City (Night)",
+ "Vbonus_056" => "Defeat Darkubes in San Fransokyo - The City (Night)",
+ "Vbonus_057" => "Defeat Dark Baymax in San Fransokyo - The City (Day)",
+ "Vbonus_058" => "Defeat Anchor Raiders in The Caribbean - Davy Jones' Locker",
+ "Vbonus_059" => "1st Ship Battle in The Caribbean - Over the Edge",
+ "Vbonus_060" => "Defeat Raging Vulture in The Caribbean - The High Seas: Southern Waters",
+ "Vbonus_061" => "Defeat Lightning Angler in The Caribbean - The High Seas: Undersea Cavern",
+ "Vbonus_062" => "Race Luxord to Port Royal in The Caribbean",
+ "Vbonus_063" => "2nd Ship Battle in The Caribbean: The High Seas - Port Royal Waters",
+ "Vbonus_064" => "3rd Ship Battle in The Caribbean: The High Seas - Forsaken Isle",
+ "Vbonus_065" => "Defeat Kraken in The Caribbean - Shipwreck Cove",
+ "Vbonus_066" => "Defeat Davy Jones in The Caribbean - Shipwreck Cove",
+ "Vbonus_067" => "Defeat Anti-Aqua in The Dark World - The Realm of Darkness",
+ "Vbonus_068" => "Defeat Lich in The Final World (San Fransokyo - The City: Central District)",
+ "Vbonus_069" => "10,000 Enemy Fight in The Keyblade Graveyard: The Badlands",
+ "Vbonus_070" => "Defeat Demon Tide in The Keyblade Graveyard: The Badlands",
+ "Vbonus_071" => "Defeat Xigbar & Dark Riku in The Keyblade Graveyard - The Skein of Severance: Trail of Valediction",
+ "Vbonus_072" => "Defeat Luxord, Marluxia, & Larxene in The Keyblade Graveyard - The Skein of Severance: Trail of Valediction",
+ "Vbonus_073" => "Defeat Vanitas & Terra-Xehanort in The Keyblade Graveyard - The Skein of Severance: Twist of Isolation",
+ "Vbonus_074" => "Defeat Saïx in The Keyblade Graveyard - The Skein of Severance: Twist of Isolation",
+ "Vbonus_075" => "Defeat Young Xehanort, Ansem, & Xemnas in The Keyblade Graveyard: The Skein of Severance - Tower of Endings",
+ "Vbonus_076" => "10,000 Enemy Fight in The Keyblade Graveyard: The Badlands",
+ "Vbonus_082" => "Defeat Darkside in The Final World",
"Vbonus_083" => "After collecting 222 Soras in The Final World",
"Vbonus_084" => "After collecting 333 Soras in The Final World",
- "VBonus_Minigame001" => "After obtaining the first A-rank in Verum Rex: Beat of Lead minigame in Toy Box",
- "VBonus_Minigame002" => "After obtaining the first A-rank in the Festival Dance minigame in Kingdom of Corona",
- "VBonus_Minigame003" => "After obtaining the first A-rank in the Frozen Slider minigame in Arendelle",
+ "VBonus_Minigame001" => "Obtain A-rank in Verum Rex: Beat of Lead minigame in Toy Box",
+ "VBonus_Minigame002" => "Obtain A-rank in the Festival Dance minigame in Kingdom of Corona",
+ "VBonus_Minigame003" => "Obtain A-rank in the Frozen Slider minigame in Arendelle",
"VBonus_Minigame004" => "After obtaining all the treasures in the Frozen Slider minigame in Arendelle",
- "VBonus_Minigame005" => "After obtaining the first A-Rank in the Flash Tracer 1 (Fred) minigame in San Fransokyo",
- "VBonus_Minigame006" => "After obtaining the first A-Rank in the Flash Tracer 2 (Go Go) minigame in San Fransokyo",
- "VBonus_Minigame007" => "After obtaining the first A-Rank in the Cherry Flan minigame in Olympus",
- "VBonus_Minigame008" => "After obtaining the first A-Rank in the Strawberry Flan minigame in Toy Box",
- "VBonus_Minigame009" => "After obtaining the first A-Rank in the Orange Flan minigame in Kingdom of Corona",
- "VBonus_Minigame010" => "After obtaining the first A-Rank in the Banana Flan minigame in Monstropolis",
- "VBonus_Minigame011" => "After obtaining the first A-Rank in the Grape Flan minigame in Arendelle",
- "VBonus_Minigame012" => "After obtaining the first A-Rank in the Watermelon Flan minigame in The Caribbean",
- "VBonus_Minigame013" => "After obtaining the first A-Rank in the Melon Flan minigame in San Fransokyo",
- "VBonus_DLC_001" => "After the Dark Inferno χ boss battle in The Keyblade Graveyard (Re+Mind)",
- "VBonus_DLC_002" => "After the Anti-Aqua boss battle in The Keyblade Graveyard (Re+Mind)",
- "VBonus_DLC_003" => "After the Terra-Xehanort boss battle in The Keyblade Graveyard (Re+Mind)",
- "VBonus_DLC_004" => "After the Xigbar & Dark Riku boss battle in The Keyblade Graveyard (Re+Mind)",
- "VBonus_DLC_005" => "After the Luxord, Larxene & Marluxia boss battle in The Keyblade Graveyard (Re+Mind)",
- "VBonus_DLC_006" => "After the Terra-Xehanort & Vanitas boss battle in The Keyblade Graveyard (Re+Mind)",
- "VBonus_DLC_007" => "After the Saix boss battle in The Keyblade Graveyard (Re+Mind)",
- "VBonus_DLC_008" => "After the Young Xehanort, Ansem & Xemnas boss battle in The Keyblade Graveyard (Re+Mind)",
- "VBonus_DLC_009" => "After the Shadow Heartless battle in Scala Ad Caelum (Re+Mind)",
- "VBonus_DLC_010" => "After the Darkside boss battle in Scala Ad Caelum (Re+Mind)",
- "VBonus_DLC_011" => "After collecting all of Kairi's heart fragments in Re+Mind",
- "VBonus_DLC_012" => "After the Replica Xehanorts boss battle as the Guardians of Light in Re+Mind",
- "VBonus_DLC_013" => "After the Replica Xehanorts boss battle as King Mickey in Re+Mind",
- "VBonus_DLC_014" => "After connecting all the keyholes in Re+Mind",
- "VBonus_DLC_015" => "After the Armored Xehanort boss battle in Re+Mind",
+ "VBonus_Minigame005" => "Obtain A-Rank in the Flash Tracer: Course A (Fred) minigame in San Fransokyo",
+ "VBonus_Minigame006" => "Obtain A-Rank in the Flash Tracer: Course 2 (Go Go) minigame in San Fransokyo",
+ "VBonus_Minigame007" => "Encounter Cherry Flan and obtain 20,000 points in Olympus",
+ "VBonus_Minigame008" => "Encounter Strawberry Flan and obtain 17,000 points in Toy Box",
+ "VBonus_Minigame009" => "Encounter Orange Flan and obtain 23,000 points in Kingdom of Corona",
+ "VBonus_Minigame010" => "Encounter Banana Flan and obtain 20,000 points in Monstropolis",
+ "VBonus_Minigame011" => "Encounter Grape Flan and obtain 20,000 points in Arendelle",
+ "VBonus_Minigame012" => "Encounter Watermelon Flan and obtain 28,000 points in The Caribbean",
+ "VBonus_Minigame013" => "Encounter Honeydew Flan and obtain 15,000 points in San Fransokyo",
+ "VBonus_DLC_001" => "Defeat Dark Inferno χ in The Keyblade Graveyard (Re:Mind)",
+ "VBonus_DLC_002" => "Defeat Anti-Aqua in The Keyblade Graveyard (Re:Mind)",
+ "VBonus_DLC_003" => "Defeat Terra-Xehanort in The Keyblade Graveyard (Re:Mind)",
+ "VBonus_DLC_004" => "Defeat Xigbar & Dark Riku in The Keyblade Graveyard (Re:Mind) - The Skein of Severance: Trail of Valediction",
+ "VBonus_DLC_005" => "Defeat Luxord, Marluxia, & Larxene in The Keyblade Graveyard (Re:Mind) - The Skein of Severance: Trail of Valediction",
+ "VBonus_DLC_006" => "Defeat Vanitas & Terra-Xehanort in The Keyblade Graveyard (Re:Mind) - The Skein of Severance: Twist of Isolation",
+ "VBonus_DLC_007" => "After the Saïx boss battle in The Keyblade Graveyard (Re:Mind) - The Skein of Severance: Twist of Isolation",
+ "VBonus_DLC_008" => "Defeat Young Xehanort, Ansem, & Xemnas in The Keyblade Graveyard (Re:Mind) - The Skein of Severance: Tower of Endings",
+ "VBonus_DLC_009" => "Defeat the Special Shadow in Scala ad Caelum (Re:Mind) - The Stairway to the Sky",
+ "VBonus_DLC_010" => "Defeat Darkside in Scala ad Caelum (Re:Mind) - Breezy Quarter",
+ "VBonus_DLC_011" => "After collecting all of Kairi's heart fragments in Re:Mind",
+ "VBonus_DLC_012" => "Defeat the Replica Xehanorts as the Guardians of Light in Re:Mind",
+ "VBonus_DLC_013" => "Defeat the Replica Xehanorts as King Mickey in Re:Mind",
+ "VBonus_DLC_014" => "After connecting all the keyholes in Re:Mind",
+ "VBonus_DLC_015" => "Defeat Armored Xehanort in Re:Mind",
"IS_0" => "Originally Ether",
"IS_1" => "Originally Fire Bangle",
"IS_2" => "Originally Fira Bangle",
@@ -687,26 +687,26 @@ public static string KeyIdToDescription(this string input)
"IS_58" => "Originally Ultima Weapon",
"IS_59" => "Originally Save the Queen+",
"IS_60" => "Originally Save the King+",
- "IS_61" => "Originally Recipe for Firefighter Rosette",
- "IS_62" => "Originally Recipe for Umbrella Rosette",
- "IS_63" => "Originally Recipe for Soldier's Earring",
- "IS_64" => "Originally Recipe for Mage's Earring",
- "IS_65" => "Originally Recipe for Mask Rosette",
- "IS_66" => "Originally Recipe for Insulator Rosette",
- "IS_67" => "Originally Recipe for Cosmic Ring",
- "IS_68" => "Originally Recipe for Moon Amulet",
- "IS_69" => "Originally Recipe for Fire Chain",
- "IS_70" => "Originally Recipe for Blizzard Chain",
- "IS_71" => "Originally Recipe for Thunder Chain",
- "IS_72" => "Originally Recipe for Snowman Rosette",
- "IS_73" => "Originally Recipe for Star Charm",
- "IS_74" => "Originally Recipe for Draw Ring",
- "IS_75" => "Originally Recipe for Aqua Chaplet",
- "IS_76" => "Originally Recipe for Aero Armlet",
- "IS_77" => "Originally Recipe for Fencer's Earring",
- "IS_78" => "Originally Recipe for Slayer's Earring",
- "IS_79" => "Originally Recipe for Dark Chain",
- "IS_80" => "Originally Recipe for Petite Ribbon",
+ "IS_61" => "Photo Mission Synthesis: Flame Core",
+ "IS_62" => "Photo Mission Synthesis: Water Core",
+ "IS_63" => "Photo Mission Synthesis: Big Beasts & Bugs Wall Display",
+ "IS_64" => "Photo Mission Synthesis: Rapunzel's Tower",
+ "IS_65" => "Photo Mission Synthesis: Chief Puff",
+ "IS_66" => "Photo Mission Synthesis: CDA Agent",
+ "IS_67" => "Photo Mission Synthesis: Statue of Hercules",
+ "IS_68" => "Photo Mission Synthesis: Festival",
+ "IS_69" => "Photo Mission Synthesis: Fire in the Secluded Forge",
+ "IS_70" => "Photo Mission Synthesis: Ice Palace",
+ "IS_71" => "Photo Mission Synthesis: Zeus",
+ "IS_72" => "Photo Mission Synthesis: Olaf",
+ "IS_73" => "Photo Mission Synthesis: Evening Star",
+ "IS_74" => "Photo Mission Synthesis: Tram",
+ "IS_75" => "Photo Mission Synthesis: Waterfall in Port Royal",
+ "IS_76" => "Photo Mission Synthesis: Fish-Shaped Wind Socks in Broad Daylight",
+ "IS_77" => "Photo Mission Synthesis: Big Green Cactuar",
+ "IS_78" => "Photo Mission Synthesis: Scarecrow in the Fields",
+ "IS_79" => "Photo Mission Synthesis: Demon Tower",
+ "IS_80" => "Photo Mission Synthesis: Sora's Teammates",
"IS_81" => "Originally Lucid Crystal",
"IS_82" => "Originally Soothing Crystal",
"IS_83" => "Originally Writhing Crystal",
@@ -1127,12 +1127,12 @@ public static string ValueIdToDisplay(this string input)
"ETresVictoryBonusKind::MELEM_THUNDER" => "Magic: Thunder",
"ETresVictoryBonusKind::MELEM_AERO" => "Magic: Aero",
"ETresAbilityKind::NONE" or "ETresVictoryBonusKind::NONE" => "",
- "Fire" or "Fira" or "Firaga" => "Fire Spell",
- "Water" or "Watera" or "Waterga" => "Water Spell",
- "Cure" or "Cura" or "Curaga" => "Cure Spell",
- "Blizzard" or "Blizzara" or "Blizzaga" => "Blizzard Spell",
- "Thunder" or "Thundara" or "Thundaga" => "Thunder Spell",
- "Aero" or "Aerora" or "Aeroga" => "Aero Spell",
+ "Fire" or "Fira" or "Firaga" => "Fire Element",
+ "Water" or "Watera" or "Waterga" => "Water Element",
+ "Cure" or "Cura" or "Curaga" => "Cure Element",
+ "Blizzard" or "Blizzara" or "Blizzaga" => "Blizzard Element",
+ "Thunder" or "Thundara" or "Thundaga" => "Thunder Element",
+ "Aero" or "Aerora" or "Aeroga" => "Aero Element",
_ => input,
};
}
@@ -1321,9 +1321,9 @@ public static string ToLevelUpRoute(this string type)
{
return type switch
{
- "TypeA" => "Warrior",
- "TypeB" => "Mystic",
- "TypeC" => "Guardian",
+ "TypeA" => "Wisdom",
+ "TypeB" => "Vitality",
+ "TypeC" => "Balance",
_ => "",
};
}
@@ -1334,229 +1334,229 @@ public static string GetChestLocation(this string chest, DataTableEnum dataTable
{
DataTableEnum.TreasureHE => chest switch
{
- "Large Chest 1" => "Chest 24 (Large Chest, Thebes: Overlook)",
- "Large Chest 2" => "Chest 9 (Large Chest, Mount Olympus: Cliff Ascent)",
- "Large Chest 3" => "Chest 31 (Large Chest, Realm of the Gods: Apex)",
- "Large Chest 4" => "Chest 29 (Large Chest, Realm of the Gods: Corridors)",
- "Small Chest 1" => "Chest 25 (Small Chest, Realm of the Gods: Courtyard)",
- "Small Chest 2" => "Chest 26 (Small Chest, Realm of the Gods: Courtyard)",
- "Small Chest 3" => "Chest 27 (Small Chest, Realm of the Gods: Courtyard)",
- "Small Chest 4" => "Chest 28 (Small Chest, Realm of the Gods: Corridors)",
- "Small Chest 6" => "Chest 30 (Small Chest, Realm of the Gods: Cloud Ridge)",
- "Small Chest 8" => "Chest 32 (Small Chest, Realm of the Gods: Apex)",
- "Small Chest 9" => "Chest 1 (Small Chest, Mount Olympus: Ravine)",
- "Small Chest 10" => "Chest 2 (Small Chest, Mount Olympus: Ravine)",
- "Small Chest 11" => "Chest 3 (Small Chest, Mount Olympus: Cliff Ascent)",
- "Small Chest 12" => "Chest 4 (Small Chest, Mount Olympus: Cliff Ascent)",
- "Small Chest 13" => "Chest 5 (Small Chest, Mount Olympus: Cliff Ascent)",
- "Small Chest 14" => "Chest 6 (Small Chest, Mount Olympus: Cliff Ascent)",
- "Small Chest 15" => "Chest 7 (Small Chest, Mount Olympus: Cliff Ascent)",
- "Small Chest 16" => "Chest 8 (Small Chest, Mount Olympus: Cliff Ascent)",
- "Small Chest 17" => "Chest 10 (Small Chest, Mount Olympus: Mountainside)",
- "Small Chest 20" => "Chest 11 (Small Chest, Mount Olympus: Summit)",
- "Small Chest 21" => "Chest 12 (Small Chest, Mount Olympus: Mountainside)",
- "Small Chest 22" => "Chest 13 (Small Chest, Thebes: Alleyway)",
- "Small Chest 23" => "Chest 14 (Small Chest, Thebes: Alleyway)",
- "Small Chest 24" => "Chest 15 (Small Chest, Thebes: Agora)",
- "Small Chest 25" => "Chest 16 (Small Chest, Thebes: The Big Olive)",
- "Small Chest 26" => "Chest 17 (Small Chest, Thebes: The Big Olive)",
- "Small Chest 27" => "Chest 18 (Small Chest, Thebes: Gardens)",
- "Small Chest 28" => "Chest 19 (Small Chest, Thebes: Overlook)",
- "Small Chest 29" => "Chest 20 (Small Chest, Thebes: Overlook)",
- "Small Chest 30" => "Chest 21 (Small Chest, Thebes: Gardens)",
- "Small Chest 31" => "Chest 22 (Small Chest, Thebes: Overlook)",
- "Small Chest 33" => "Chest 23 (Small Chest, Thebes: Overlook)",
+ "Large Chest 1" => "Chest 29 (Large Chest, Realm of the Gods: Corridors, Near Save Point)",
+ "Large Chest 2" => "Chest 9 (Large Chest, Mount Olympus: Cliff Ascent, Below the Apple Tree)",
+ "Large Chest 3" => "Chest 31 (Large Chest, Realm of the Gods: Apex, Within Breakable Dive Box)",
+ "Large Chest 4" => "Chest 24 (Large Chest, Thebes: Overlook, Near Save Point)",
+ "Small Chest 1" => "Chest 25 (Small Chest, Realm of the Gods: Courtyard, Hallway Under Stairs)",
+ "Small Chest 2" => "Chest 26 (Small Chest, Realm of the Gods: Courtyard, Right of Entrance)",
+ "Small Chest 3" => "Chest 27 (Small Chest, Realm of the Gods: Courtyard, Left of Entrance)",
+ "Small Chest 4" => "Chest 28 (Small Chest, Realm of the Gods: Corridors, Near Lucky Emblem on Stairs Wall)",
+ "Small Chest 6" => "Chest 30 (Small Chest, Realm of the Gods: Cloud Ridge, After Rail Gauntlet)",
+ "Small Chest 8" => "Chest 32 (Small Chest, Realm of the Gods: Apex, 2nd Airstep Platform)",
+ "Small Chest 9" => "Chest 1 (Small Chest, Mount Olympus: Ravine, Inside the Foot Statue)",
+ "Small Chest 10" => "Chest 2 (Small Chest, Mount Olympus: Ravine, In the River)",
+ "Small Chest 11" => "Chest 3 (Small Chest, Mount Olympus: Cliff Ascent, Cave Alcove Northwest Corner)",
+ "Small Chest 12" => "Chest 4 (Small Chest, Mount Olympus: Cliff Ascent, Cave Alcove Southwest Corner)",
+ "Small Chest 13" => "Chest 5 (Small Chest, Mount Olympus: Cliff Ascent, Cave Alcove Northwest Corner)",
+ "Small Chest 14" => "Chest 6 (Small Chest, Mount Olympus: Cliff Ascent, On Lucky Emblem Mountain)",
+ "Small Chest 15" => "Chest 7 (Small Chest, Mount Olympus: Cliff Ascent, Near Lucky Emblem Mountain)",
+ "Small Chest 16" => "Chest 8 (Small Chest, Mount Olympus: Cliff Ascent, South Side of 1st Scalable Wall)",
+ "Small Chest 17" => "Chest 10 (Small Chest, Mount Olympus: Mountainside, Near the Top of the 1st Cliff)",
+ "Small Chest 20" => "Chest 11 (Small Chest, Mount Olympus: Summit, Top of the 2nd Cliff)",
+ "Small Chest 21" => "Chest 12 (Small Chest, Mount Olympus: Mountainside, High Platform After 1st Cliff)",
+ "Small Chest 22" => "Chest 13 (Small Chest, Thebes: Alleyway, Upper Grass Platform)",
+ "Small Chest 23" => "Chest 14 (Small Chest, Thebes: Alleyway, Inside Waterway)",
+ "Small Chest 24" => "Chest 15 (Small Chest, Thebes: Agora, Near Lucky Emblem on Stairs)",
+ "Small Chest 25" => "Chest 16 (Small Chest, Thebes: The Big Olive, Left Trinity Shield Path)",
+ "Small Chest 26" => "Chest 17 (Small Chest, Thebes: The Big Olive, Platform Above the Lava Pit)",
+ "Small Chest 27" => "Chest 18 (Small Chest, Thebes: Gardens, Break the Statue's Right Foot)",
+ "Small Chest 28" => "Chest 19 (Small Chest, Thebes: Overlook, Below Statue with Shield)",
+ "Small Chest 29" => "Chest 20 (Small Chest, Thebes: Overlook, End of Left Trinity Shield Path)",
+ "Small Chest 30" => "Chest 21 (Small Chest, Thebes: Gardens, Near Save Point)",
+ "Small Chest 31" => "Chest 22 (Small Chest, Thebes: Overlook, Northwest of Statue with Shield)",
+ "Small Chest 33" => "Chest 23 (Small Chest, Thebes: Overlook, Before Crossing the Roofs)",
_ => "",
},
DataTableEnum.TreasureTT => chest switch
{
- "Large Chest 1" => "Chest 1 (Large Chest, The Neighborhood: Tram Common)",
- "Small Chest 1" => "Chest 2 (Small Chest, The Neighborhood: Tram Common)",
- "Small Chest 2" => "Chest 3 (Small Chest, The Neighborhood: Tram Common)",
- "Small Chest 3" => "Chest 4 (Small Chest, The Neighborhood: Tram Common)",
- "Small Chest 4" => "Chest 5 (Small Chest, The Neighborhood: Tram Common)",
- "Small Chest 5" => "Chest 6 (Small Chest, Underground Conduit)",
- "Small Chest 6" => "Chest 7 (Small Chest, The Woods)",
- "Small Chest 7" => "Chest 8 (Small Chest, The Woods)",
- "Small Chest 8" => "Chest 9 (Small Chest, The Woods)",
- "Small Chest 9" => "Chest 10 (Small Chest, The Old Mansion)",
+ "Large Chest 1" => "Chest 1 (Large Chest, The Neighborhood: Tram Common, Near Gummi Shop)",
+ "Small Chest 1" => "Chest 2 (Small Chest, The Neighborhood: Tram Common, Near Theater)",
+ "Small Chest 2" => "Chest 3 (Small Chest, The Neighborhood: Tram Common, Underground Conduit Entrance)",
+ "Small Chest 3" => "Chest 4 (Small Chest, The Neighborhood: Tram Common, Rooftop)",
+ "Small Chest 4" => "Chest 5 (Small Chest, The Neighborhood: Tram Common, Near Le Grand Bistrot)",
+ "Small Chest 5" => "Chest 6 (Small Chest, Underground Conduit, Near The Woods Entrance)",
+ "Small Chest 6" => "Chest 7 (Small Chest, The Woods, On Northwest Log)",
+ "Small Chest 7" => "Chest 8 (Small Chest, The Woods, Inside Southwest Log)",
+ "Small Chest 8" => "Chest 9 (Small Chest, The Woods, Under Northeast Log)",
+ "Small Chest 9" => "Chest 10 (Small Chest, The Old Mansion, Right of Mansion Entrance)",
_ => "",
},
DataTableEnum.TreasureTS => chest switch
{
- "Large Chest 1" => "Chest 1 (Large Chest, Andy's House)",
- "Large Chest 2" => "Chest 2 (Large Chest, Andy's House)",
- "Large Chest 3" => "Chest 5 (Large Chest, Galaxy Toys: Main Floor 1F)",
- "Large Chest 4" => "Chest 13 (Large Chest, Galaxy Toys: Lower Vents)",
- "Large Chest 5" => "Chest 24 (Large Chest, Galaxy Toys: Kid Korral)",
- "Large Chest 6" => "Chest 29 (Large Chest, Galaxy Toys: Rail 3)",
- "Small Chest 1" => "Chest 3 (Small Chest, Andy's House)",
- "Small Chest 2" => "Chest 4 (Small Chest, Andy's House)",
- "Small Chest 3" => "Chest 6 (Small Chest, Galaxy Toys: Exit)",
- "Small Chest 4" => "Chest 7 (Small Chest, Galaxy Toys: Rail 3)",
- "Small Chest 5" => "Chest 8 (Small Chest, Galaxy Toys: Action Figures)",
- "Small Chest 6" => "Chest 9 (Small Chest, Galaxy Toys: Action Figures)",
- "Small Chest 7" => "Chest 10 (Small Chest, Galaxy Toys: Action Figures)",
- "Small Chest 8" => "Chest 11 (Small Chest, Galaxy Toys: Lower Vents)",
- "Small Chest 9" => "Chest 12 (Small Chest, Galaxy Toys: Lower Vents)",
- "Small Chest 11" => "Chest 14 (Small Chest, Babies and Toddlers: Dolls)",
- "Small Chest 12" => "Chest 15 (Small Chest, Babies and Toddlers: Dolls)",
- "Small Chest 13" => "Chest 16 (Small Chest, Babies and Toddlers: Dolls)",
- "Small Chest 14" => "Chest 17 (Small Chest, Babies and Toddlers: Dolls)",
- "Small Chest 15" => "Chest 18 (Small Chest, Babies and Toddlers: Outdoors)",
- "Small Chest 16" => "Chest 19 (Small Chest, Babies and Toddlers: Outdoors)",
- "Small Chest 17" => "Chest 20 (Small Chest, Galaxy Toys: Video Games)",
- "Small Chest 18" => "Chest 21 (Small Chest, Galaxy Toys: Kid Korral)",
- "Small Chest 19" => "Chest 22 (Small Chest, Galaxy Toys: Kid Korral)",
- "Small Chest 20" => "Chest 23 (Small Chest, Galaxy Toys: Kid Korral)",
- "Small Chest 22" => "Chest 25 (Small Chest, Galaxy Toys: Kid Korral)",
- "Small Chest 23" => "Chest 26 (Small Chest, Galaxy Toys: Main Floor 2F)",
- "Small Chest 24" => "Chest 27 (Small Chest, Galaxy Toys: Main Floor 1F)",
- "Small Chest 25" => "Chest 28 (Small Chest, Babies and Toddlers: Outdoors)",
+ "Large Chest 1" => "Chest 1 (Large Chest, Andy's House, Near Save Point)",
+ "Large Chest 2" => "Chest 2 (Large Chest, Andy's House, Inside the Red Tool Box)",
+ "Large Chest 3" => "Chest 5 (Large Chest, Galaxy Toys: Main Floor 1F, Inside Space Capsule)",
+ "Large Chest 4" => "Chest 13 (Large Chest, Galaxy Toys: Lower Vents, West of Save Point)",
+ "Large Chest 5" => "Chest 24 (Large Chest, Galaxy Toys: Kid Korral, Tunnel Playground: Intersection)",
+ "Large Chest 6" => "Chest 29 (Large Chest, Galaxy Toys: Main Floor: 3F, East of Green Rail)",
+ "Small Chest 1" => "Chest 3 (Small Chest, Andy's House, On Northeast Shelf)",
+ "Small Chest 2" => "Chest 4 (Small Chest, Andy's House, Under the Bed)",
+ "Small Chest 3" => "Chest 6 (Small Chest, Galaxy Toys: Main Floor: 2F, Above Galaxy Toys Entrance)",
+ "Small Chest 4" => "Chest 7 (Small Chest, Galaxy Toys: Main Floor: 3F, North of Green Rail)",
+ "Small Chest 5" => "Chest 8 (Small Chest, Galaxy Toys: Action Figures, Win Rumblin' Time Minigame)",
+ "Small Chest 6" => "Chest 9 (Small Chest, Galaxy Toys: Action Figures, Southwest of Dissidia Figures)",
+ "Small Chest 7" => "Chest 10 (Small Chest, Galaxy Toys: Action Figures, Near Customer Service)",
+ "Small Chest 8" => "Chest 11 (Small Chest, Galaxy Toys: Lower Vents, Near Lucky Emblem)",
+ "Small Chest 9" => "Chest 12 (Small Chest, Galaxy Toys: Lower Vents, Upper Level)",
+ "Small Chest 11" => "Chest 14 (Small Chest, Babies and Toddlers: Dolls, Near Upper Vents Entrance)",
+ "Small Chest 12" => "Chest 15 (Small Chest, Babies and Toddlers: Dolls, On Julia the Dress Queen Shelf)",
+ "Small Chest 13" => "Chest 16 (Small Chest, Babies and Toddlers: Dolls, On Patchwork Animals Shelf)",
+ "Small Chest 14" => "Chest 17 (Small Chest, Babies and Toddlers: Dolls, Inside My Little House)",
+ "Small Chest 15" => "Chest 18 (Small Chest, Babies and Toddlers: Outdoors, Near Kid Korral Upper Entrance)",
+ "Small Chest 16" => "Chest 19 (Small Chest, Babies and Toddlers: Outdoors, Behind Wood Building Blocks)",
+ "Small Chest 17" => "Chest 20 (Small Chest, Galaxy Toys: Video Games, Inside Checkout Counter)",
+ "Small Chest 18" => "Chest 21 (Small Chest, Galaxy Toys: Kid Korral, Climbing Playground: Blue Level)",
+ "Small Chest 19" => "Chest 22 (Small Chest, Galaxy Toys: Kid Korral, Climbing Playground: Yellow Level)",
+ "Small Chest 20" => "Chest 23 (Small Chest, Galaxy Toys: Kid Korral, Behind Dice Blocks East of Ball Pit)",
+ "Small Chest 22" => "Chest 25 (Small Chest, Galaxy Toys: Kid Korral, Inside Ball Pit Area - North)",
+ "Small Chest 23" => "Chest 26 (Small Chest, Galaxy Toys: Rest Area, Top of Drink Factory)",
+ "Small Chest 24" => "Chest 27 (Small Chest, Galaxy Toys: Main Floor 1F, Back of Delivery Service Counter)",
+ "Small Chest 25" => "Chest 28 (Small Chest, Babies and Toddlers: Outdoors, Inside Slide Set)",
_ => "",
},
DataTableEnum.TreasureRA => chest switch
{
- "Large Chest 1" => "Chest 7 (Large Chest, The Forest: Hills)",
- "Large Chest 2" => "Chest 10 (Large Chest, The Forest: Marsh)",
- "Large Chest 3" => "Chest 9 (Large Chest, The Forest: Hills)",
- "Large Chest 4" => "Chest 22 (Large Chest, The Forest: Wildflower Clearing)",
- "Large Chest 5" => "Chest 24 (Large Chest, The Kingdom: Thoroughfare)",
- "Large Chest 6" => "Chest 14 (Large Chest, The Forest: Wetlands)",
- "Small Chest 1" => "Chest 1 (Small Chest, The Forest: Tower)",
- "Small Chest 2" => "Chest 2 (Small Chest, The Forest: Hills)",
- "Small Chest 3" => "Chest 3 (Small Chest, The Forest: Hills)",
- "Small Chest 4" => "Chest 4 (Small Chest, The Forest: Hills)",
- "Small Chest 5" => "Chest 5 (Small Chest, The Forest: Hills)",
- "Small Chest 6" => "Chest 6 (Small Chest, The Forest: Hills)",
- "Small Chest 7" => "Chest 8 (Small Chest, The Forest: Hills)",
- "Small Chest 8" => "Chest 11 (Small Chest, The Forest: Marsh)",
- "Small Chest 9" => "Chest 12 (Small Chest, The Forest: Marsh)",
- "Small Chest 10" => "Chest 13 (Small Chest, The Forest: Wetlands)",
- "Small Chest 11" => "Chest 15 (Small Chest, The Forest: Wetlands)",
- "Small Chest 12" => "Chest 16 (Small Chest, The Forest: Wetlands)",
- "Small Chest 13" => "Chest 17 (Small Chest, The Forest: Wetlands)",
- "Small Chest 14" => "Chest 18 (Small Chest, The Forest: Wetlands/Campsite)",
- "Small Chest 15" => "Chest 19 (Small Chest, The Forest: Campsite)",
- "Small Chest 16" => "Chest 20 (Small Chest, The Forest: Shore)",
- "Small Chest 17" => "Chest 21 (Small Chest, The Forest: Wildflower Clearing)",
- "Small Chest 18" => "Chest 23 (Small Chest, The Kingdom: Thoroughfare)",
- "Small Chest 19" => "Chest 25 (Small Chest, The Kingdom: Thoroughfare)",
- "Small Chest 20" => "Chest 26 (Small Chest, The Kingdom: Wharf)",
- "Small Chest 21" => "Chest 27 (Small Chest, The Kingdom: Wharf)",
- "Small Chest 22" => "Chest 28 (Small Chest, The Kingdom: Wharf)",
+ "Large Chest 1" => "Chest 7 (Large Chest, The Forest: Hills, Starting Area Up Against Tree)",
+ "Large Chest 2" => "Chest 10 (Large Chest, The Forest: Marsh, West of Save Point Up Against Tree)",
+ "Large Chest 3" => "Chest 9 (Large Chest, The Forest: Hills, Inside Cave)",
+ "Large Chest 4" => "Chest 22 (Large Chest, The Forest: Wildflower Clearing, Northwest of Save Point)",
+ "Large Chest 5" => "Chest 24 (Large Chest, The Kingdom: Thoroughfare, Perform on Barrel Near Save Point)",
+ "Large Chest 6" => "Chest 14 (Large Chest, The Forest: Wetlands, Within Breakable Dive Rock)",
+ "Small Chest 1" => "Chest 1 (Small Chest, The Forest: Tower, West of the Tower Near Pond)",
+ "Small Chest 2" => "Chest 2 (Small Chest, The Forest: Hills, Upper-Left Platform Before Marsh)",
+ "Small Chest 3" => "Chest 3 (Small Chest, The Forest: Hills, Upper-Right Platform Before Marsh)",
+ "Small Chest 4" => "Chest 4 (Small Chest, The Forest: Hills, A Gift from Rabbits)",
+ "Small Chest 5" => "Chest 5 (Small Chest, The Forest: Hills, Surrounded by Bushes)",
+ "Small Chest 6" => "Chest 6 (Small Chest, The Forest: Hills, Near Save Point Behind Log)",
+ "Small Chest 7" => "Chest 8 (Small Chest, The Forest: Hills, Across the Pond)",
+ "Small Chest 8" => "Chest 11 (Small Chest, The Forest: Marsh, Platform Southeast of Lucky Emblem)",
+ "Small Chest 9" => "Chest 12 (Small Chest, The Forest: Marsh, Within the Southwest River)",
+ "Small Chest 10" => "Chest 13 (Small Chest, The Forest: Wetlands, North Platform After Chaos Carriage)",
+ "Small Chest 11" => "Chest 15 (Small Chest, The Forest: Wetlands, High Platform South of Dive Rock)",
+ "Small Chest 12" => "Chest 16 (Small Chest, The Forest: Wetlands, Platform Near Wall Inside Cave)",
+ "Small Chest 13" => "Chest 17 (Small Chest, The Forest: Wetlands, Southwest Corner Inside Cave)",
+ "Small Chest 14" => "Chest 18 (Small Chest, The Forest: Wetlands, West of Campsite Save Point)",
+ "Small Chest 15" => "Chest 19 (Small Chest, The Forest: Campsite, Platform Before Save Point)",
+ "Small Chest 16" => "Chest 20 (Small Chest, The Forest: Shore, South of Bridge)",
+ "Small Chest 17" => "Chest 21 (Small Chest, The Forest: Wildflower Clearing, Hill West of Save Point)",
+ "Small Chest 18" => "Chest 23 (Small Chest, The Kingdom: Thoroughfare, Festival Dance Area)",
+ "Small Chest 19" => "Chest 25 (Small Chest, The Kingdom: Thoroughfare, Next to Wall Near the Save Point)",
+ "Small Chest 20" => "Chest 26 (Small Chest, The Kingdom: Wharf, End of East Dock)",
+ "Small Chest 21" => "Chest 27 (Small Chest, The Kingdom: Wharf, Top of the Mini-Tower)",
+ "Small Chest 22" => "Chest 28 (Small Chest, The Kingdom: Wharf, Hidden in Boxes and Barrels)",
_ => "",
},
DataTableEnum.TreasureMI => chest switch
{
- "Large Chest 1" => "Chest 1 (Large Chest, Monsters, Inc.)",
- "Large Chest 2" => "Chest 9 (Large Chest, The Factory)",
- "Large Chest 3" => "Chest 19 (Large Chest, The Power Plant: Tank Yard)",
- "Large Chest 4" => "Chest 10 (Large Chest, The Factory)",
- "Small Chest 1" => "Chest 2 (Small Chest, Monsters, Inc.)",
- "Small Chest 2" => "Chest 3 (Small Chest, Monsters, Inc.)",
- "Small Chest 3" => "Chest 4 (Small Chest, Monsters, Inc.)",
- "Small Chest 5" => "Chest 11 (Small Chest, The Factory)",
- "Small Chest 6" => "Chest 12 (Small Chest, The Factory)",
- "Small Chest 7" => "Chest 13 (Small Chest, Vault Door: Service Area)",
- "Small Chest 8" => "Chest 14 (Small Chest, The Factory: Second Floor)",
- "Small Chest 9" => "Chest 15 (Small Chest, The Power Plant: Accessway)",
- "Small Chest 10" => "Chest 16 (Small Chest, The Power Plant: Accessway)",
- "Small Chest 11" => "Chest 17 (Small Chest, The Power Plant: Accessway)",
- "Small Chest 12" => "Chest 18 (Small Chest, The Power Plant: Tank Yard)",
- "Small Chest 13" => "Chest 20 (Small Chest, The Power Plant: Vault Passage)",
- "Small Chest 14" => "Chest 21 (Small Chest, The Power Plant: Vault Passage)",
- "Small Chest 15" => "Chest 22 (Small Chest, The Power Plant: Accessway)",
- "Small Chest 16" => "Chest 5 (Small Chest, Monsters, Inc.: Upper Level)",
- "Small Chest 17" => "Chest 6 (Small Chest, Monsters, Inc.: Lower Levels)",
- "Small Chest 18" => "Chest 7 (Small Chest, The Door Vault: Service Area)",
- "Small Chest 19" => "Chest 8 (Small Chest, The Door Vault: Upper Level)",
+ "Large Chest 1" => "Chest 1 (Large Chest, Monsters, Inc.: Lobby & Offices, Before Save Point)",
+ "Large Chest 2" => "Chest 9 (Large Chest, The Factory: Basement, Near Save Point)",
+ "Large Chest 3" => "Chest 19 (Large Chest, The Power Plant: Tank Yard, Within Breakable Dive Box)",
+ "Large Chest 4" => "Chest 10 (Large Chest, The Factory: Ground Floor, Electrical Path from Second Floor)",
+ "Small Chest 1" => "Chest 2 (Small Chest, Monsters, Inc.: Lobby & Offices, Behind Canisters)",
+ "Small Chest 2" => "Chest 3 (Small Chest, Monsters, Inc.: Laugh Floor, Behind Counter at Entrance)",
+ "Small Chest 3" => "Chest 4 (Small Chest, Monsters, Inc.: Laugh Floor, Back-Left Corner)",
+ "Small Chest 5" => "Chest 11 (Small Chest, The Factory: Ground Floor, Behind Boxes Next to Door E6)",
+ "Small Chest 6" => "Chest 12 (Small Chest, The Factory: Ground Floor, Canister Platform Near Save Point)",
+ "Small Chest 7" => "Chest 13 (Small Chest, The Factory: Second Floor, Middle of Lasers Path)",
+ "Small Chest 8" => "Chest 14 (Small Chest, The Factory: Second Floor, Northwest Canister Platform)",
+ "Small Chest 9" => "Chest 15 (Small Chest, The Power Plant: Accessway, Near Moogle Shop)",
+ "Small Chest 10" => "Chest 16 (Small Chest, The Power Plant: Accessway, Forced Fight Area)",
+ "Small Chest 11" => "Chest 17 (Small Chest, The Power Plant: Accessway, Before Circluar Ramp)",
+ "Small Chest 12" => "Chest 18 (Small Chest, The Power Plant: Tank Yard, Platform Near Save Point)",
+ "Small Chest 13" => "Chest 20 (Small Chest, The Power Plant: Vault Passage, Under Stairs)",
+ "Small Chest 14" => "Chest 21 (Small Chest, The Power Plant: Vault Passage, Behind Flames)",
+ "Small Chest 15" => "Chest 22 (Small Chest, The Power Plant: Accessway, Rest Area Before Bridge)",
+ "Small Chest 16" => "Chest 5 (Small Chest, Monsters, Inc.: Upper Level, Across from Banana Flan)",
+ "Small Chest 17" => "Chest 6 (Small Chest, Monsters, Inc.: Lower Level, Near Many Doors)",
+ "Small Chest 18" => "Chest 7 (Small Chest, The Door Vault: Service Area, Right of Stairs)",
+ "Small Chest 19" => "Chest 8 (Small Chest, The Door Vault: Service Area, Elevator Post World Visit)",
_ => "",
},
DataTableEnum.TreasureFZ => chest switch
{
- "Large Chest 1" => "Chest 1 (Large Chest, The North Mountain: Treescape)",
- "Large Chest 2" => "Chest 10 (Large Chest, The Labyrinth of Ice: Middle Tier)",
- "Large Chest 3" => "Chest 8 (Large Chest, The North Mountain: Treescape)",
- "Large Chest 4" => "Chest 7 (Large Chest, The North Mountain: Snowfield)",
- "Large Chest 5" => "Chest 14 (Large Chest, The Labyrinth of Ice: Lower Tier)",
- "Large Chest 6" => "Chest 9 (Large Chest, The North Mountain: Snowfield)",
- "Small Chest 1" => "Chest 2 (Small Chest, The North Mountain: Treescape)",
- "Small Chest 2" => "Chest 3 (Small Chest, The North Mountain: Treescape)",
- "Small Chest 4" => "Chest 4 (Small Chest, The North Mountain: Gorge)",
- "Small Chest 5" => "Chest 5 (Small Chest, The North Mountain: Gorge)",
- "Small Chest 7" => "Chest 6 (Small Chest, The North Mountain: Snowfield)",
- "Small Chest 11" => "Chest 11 (Small Chest, The Labyrinth of Ice: Lower Tier)",
- "Small Chest 12" => "Chest 12 (Small Chest, The Labyrinth of Ice: Middle Tier)",
- "Small Chest 13" => "Chest 13 (Small Chest, The Labyrinth of Ice: Lower Tier)",
- "Small Chest 15" => "Chest 15 (Small Chest, The Labyrinth of Ice: Middle Tier)",
- "Small Chest 16" => "Chest 16 (Small Chest, The North Mountain: Valley of Ice)",
- "Small Chest 17" => "Chest 17 (Small Chest, The North Mountain: Valley of Ice)",
- "Small Chest 19" => "Chest 18 (Small Chest, The North Mountain: Valley of Ice)",
- "Small Chest 20" => "Chest 19 (Small Chest, The North Mountain: Valley of Ice)",
- "Small Chest 22" => "Chest 20 (Small Chest, The North Mountain: Valley of Ice)",
- "Small Chest 23" => "Chest 21 (Small Chest, The North Mountain: The Frozen Wall)",
- "Small Chest 24" => "Chest 22 (Small Chest, The North Mountain: The Frozen Wall)",
- "Small Chest 25" => "Chest 23 (Small Chest, The North Mountain: The Frozen Wall)",
- "Small Chest 27" => "Chest 24 (Small Chest, The North Mountain: Foothills)",
- "Small Chest 29" => "Chest 25 (Small Chest, The North Mountain: Foothills)",
+ "Large Chest 1" => "Chest 1 (Large Chest, The North Mountain: Treescape, Near Moogle Shop)",
+ "Large Chest 2" => "Chest 10 (Large Chest, The Labyrinth of Ice: Middle Tier, Secret Passage Behind Ice Wall)",
+ "Large Chest 3" => "Chest 8 (Large Chest, The North Mountain: Treescape, Within Breakable Dive Icicle)",
+ "Large Chest 4" => "Chest 7 (Large Chest, The North Mountain: Snowfield, On a Snowy Rock)",
+ "Large Chest 5" => "Chest 14 (Large Chest, The Labyrinth of Ice: Lower Tier, Hidden Alcove Close to Save Point)",
+ "Large Chest 6" => "Chest 9 (Large Chest, The North Mountain: Snowfield, Within Breakable Dive Icicle)",
+ "Small Chest 1" => "Chest 2 (Small Chest, The North Mountain: Treescape, Snowy Rock Behind Trees)",
+ "Small Chest 2" => "Chest 3 (Small Chest, The North Mountain: Treescape, Behind Snowy Bushes)",
+ "Small Chest 4" => "Chest 4 (Small Chest, The North Mountain: Gorge, High Platform Near Icicles)",
+ "Small Chest 5" => "Chest 5 (Small Chest, The North Mountain: Gorge, East Alcove with Popcats)",
+ "Small Chest 7" => "Chest 6 (Small Chest, The North Mountain: Snowfield, East Path After Save Point)",
+ "Small Chest 11" => "Chest 11 (Small Chest, The Labyrinth of Ice: Upper Tier, Left of Exit Portal)",
+ "Small Chest 12" => "Chest 12 (Small Chest, The Labyrinth of Ice: Middle Tier, High Platform at East Corner)",
+ "Small Chest 13" => "Chest 13 (Small Chest, The Labyrinth of Ice: Upper Tier, Right of Exit Portal)",
+ "Small Chest 15" => "Chest 15 (Small Chest, The Labyrinth of Ice: Middle Tier, End of Hidden Rail Gauntlet Route)",
+ "Small Chest 16" => "Chest 16 (Small Chest, The North Mountain: Valley of Ice, Upper-Right Path Near Save Point)",
+ "Small Chest 17" => "Chest 17 (Small Chest, The North Mountain: Valley of Ice, Across from the Ice Wall)",
+ "Small Chest 19" => "Chest 18 (Small Chest, The North Mountain: Valley of Ice, Past the Trees After Helping Olaf)",
+ "Small Chest 20" => "Chest 19 (Small Chest, The North Mountain: Valley of Ice, East Upper Platform)",
+ "Small Chest 22" => "Chest 20 (Small Chest, The North Mountain: Valley of Ice, Very High Southwest Platform)",
+ "Small Chest 23" => "Chest 21 (Small Chest, The North Mountain: Frozen Wall, South of 1st Superjump)",
+ "Small Chest 24" => "Chest 22 (Small Chest, The North Mountain: Frozen Wall, Hidden Northwest Alcove)",
+ "Small Chest 25" => "Chest 23 (Small Chest, The North Mountain: Frozen Wall, Very High Ledge East of Exit)",
+ "Small Chest 27" => "Chest 24 (Small Chest, The North Mountain: Foothills, High Platform Near Lucky Emblem)",
+ "Small Chest 29" => "Chest 25 (Small Chest, The North Mountain: Foothills, Last Southwest Corner)",
_ => "",
},
DataTableEnum.TreasureCA => chest switch
{
- "Large Chest 1" => "Chest 20 (Large Chest, The Huddled Isles)",
- "Large Chest 2" => "Chest 19 (Large Chest, Sandbar Isle)",
- "Large Chest 3" => "Chest 17 (Large Chest, Isla de los Mástiles)",
- "Large Chest 4" => "Chest 18 (Large Chest, Ship's End)",
- "Large Chest 5" => "Chest 51 (Large Chest, Port Royal: Docks)",
- "Large Chest 6" => "Chest 47 (Large Chest, Port Royal: Fort)",
- "Large Chest 7" => "Chest 4 (Large Chest, The Huddled Isles)",
- "Large Chest 8" => "Chest 10 (Large Chest, Isla Verdemontaña)",
- "Large Chest 9" => "Chest 13 (Large Chest, Confinement Island)",
- "Large Chest 10" => "Chest 15 (Large Chest, The Huddled Isles)",
- "Large Chest 11" => "Chest 6 (Large Chest, Isla de los Mástiles)",
- "Small Chest 1" => "Chest 46 (Small Chest, Port Royal: Fort)",
- "Small Chest 2" => "Chest 48 (Small Chest, Port Royal: Seaport)",
- "Small Chest 3" => "Chest 49 (Small Chest, Port Royal: Seaport)",
- "Small Chest 4" => "Chest 50 (Small Chest, Port Royal: Seaport)",
- "Small Chest 5" => "Chest 52 (Small Chest, Port Royal: Settlement)",
- "Small Chest 6" => "Chest 53 (Small Chest, Port Royal: Docks)",
- "Small Chest 7" => "Chest 54 (Small Chest, Port Royal: Underwater)",
- "Small Chest 8" => "Chest 55 (Small Chest, Port Royal: Settlement)",
- "Small Chest 9" => "Chest 56 (Small Chest, Port Royal: Seaport)",
- "Small Chest 10" => "Chest 1 (Small Chest, The Huddled Isles)",
- "Small Chest 11" => "Chest 2 (Small Chest, The Huddled Isles)",
- "Small Chest 12" => "Chest 3 (Small Chest, The Huddled Isles)",
- "Small Chest 13" => "Chest 5 (Small Chest, Isla de los Mástiles)",
- "Small Chest 14" => "Chest 7 (Small Chest, Ship's End)",
- "Small Chest 15" => "Chest 8 (Small Chest, Ship's End)",
- "Small Chest 16" => "Chest 9 (Small Chest, Isla Verdemontaña)",
- "Small Chest 17" => "Chest 11 (Small Chest, Sandbar Isle)",
+ "Large Chest 1" => "Chest 51 (Large Chest, Port Royal: Docks, North Side Near Docks)",
+ "Large Chest 2" => "Chest 17 (Large Chest, Isla de los Mastiles, Inside Cave)",
+ "Large Chest 3" => "Chest 18 (Large Chest, Ship's End, On a Sunken Ship)",
+ "Large Chest 4" => "Chest 19 (Large Chest, Sandbar Isle, On Left Island Surrounded by Water)",
+ "Large Chest 5" => "Chest 20 (Large Chest, Huddled Isles, Near Save Point)",
+ "Large Chest 6" => "Chest 47 (Large Chest, Port Royal: Fort, In the Prison Cell)",
+ "Large Chest 7" => "Chest 4 (Large Chest, Huddled Isles: Undersea Cavern, 4th Dead End)",
+ "Large Chest 8" => "Chest 10 (Large Chest, Isla Verdemontana, Within Breakable Dive Box)",
+ "Large Chest 9" => "Chest 13 (Large Chest, Confinement Island, Ambush Alcove)",
+ "Large Chest 10" => "Chest 15 (Large Chest, Huddled Isles: Undersea Cavern, Lightning Angler's Lair)",
+ "Large Chest 11" => "Chest 6 (Large Chest, Isla de los Mastiles, Within Breakable Dive Box)",
+ "Small Chest 1" => "Chest 46 (Small Chest, Port Royal: Fort, Northeast Side of Rampart)",
+ "Small Chest 2" => "Chest 48 (Small Chest, Port Royal: Seaport, Behind the Waterfall)",
+ "Small Chest 3" => "Chest 49 (Small Chest, Port Royal: Seaport, North Dock Near Water)",
+ "Small Chest 4" => "Chest 50 (Small Chest, Port Royal: Seaport, Under the Bridge Near Settlement)",
+ "Small Chest 5" => "Chest 52 (Small Chest, Port Royal: Settlement, South Side On Roof)",
+ "Small Chest 6" => "Chest 53 (Small Chest, Port Royal: Docks, Southwest Corner Near Building)",
+ "Small Chest 7" => "Chest 54 (Small Chest, Port Royal: Underwater, In a Broken Ship)",
+ "Small Chest 8" => "Chest 55 (Small Chest, Port Royal: Settlement, West Side Behind Boxes)",
+ "Small Chest 9" => "Chest 56 (Small Chest, Port Royal: Seaport, Behind the Waterfall)",
+ "Small Chest 10" => "Chest 1 (Small Chest, Huddled Isles, Within a Sunken Ship)",
+ "Small Chest 11" => "Chest 2 (Small Chest, Huddled Isles: Undersea Cavern, 2nd Dead End)",
+ "Small Chest 12" => "Chest 3 (Small Chest, Huddled Isles: Undersea Cavern, 3rd Dead End)",
+ "Small Chest 13" => "Chest 5 (Small Chest, Isla de los Mastiles: Underwater Alcove)",
+ "Small Chest 14" => "Chest 7 (Small Chest, Ship's End, Within a Sunken Ship)",
+ "Small Chest 15" => "Chest 8 (Small Chest, Ship's End, Within a Sunken Ship)",
+ "Small Chest 16" => "Chest 9 (Small Chest, Isla Verdemontana, Top of 1st Cliff)",
+ "Small Chest 17" => "Chest 11 (Small Chest, Sandbar Isle: Underwater Alcove)",
"Small Chest 18" => "Chest 12 (Small Chest, Exile Island)",
"Small Chest 19" => "Chest 14 (Small Chest, The Gateway of Regret)",
"Small Chest 20" => "Chest 16 (Small Chest, Horseshoe Island)",
- "Small Chest 21" => "Chest 21 (Small Chest, The Huddled Isles)",
- "Small Chest 22" => "Chest 22 (Small Chest, The Huddled Isles)",
- "Small Chest 23" => "Chest 23 (Small Chest, Isla de los Mástiles)",
- "Small Chest 24" => "Chest 24 (Small Chest, Isla de los Mástiles)",
- "Small Chest 25" => "Chest 45 (Small Chest, Leviathan)",
- "Small Chest 26" => "Chest 25 (Small Chest, Isla Verdemontaña)",
- "Small Chest 27" => "Chest 26 (Small Chest, Sandbar Isle)",
- "Small Chest 28" => "Chest 27 (Small Chest, Sandbar Isle)",
- "Small Chest 29" => "Chest 28 (Small Chest, Sandbar Isle)",
- "Small Chest 30" => "Chest 29 (Small Chest, Sandbar Isle)",
- "Small Chest 31" => "Chest 30 (Small Chest, Sandbar Isle)",
- "Small Chest 32" => "Chest 31 (Small Chest, Sandbar Isle)",
- "Small Chest 33" => "Chest 32 (Small Chest, Sandbar Isle)",
- "Small Chest 34" => "Chest 33 (Small Chest, Sandbar Isle)",
- "Small Chest 35" => "Chest 34 (Small Chest, Sandbar Isle)",
- "Small Chest 36" => "Chest 35 (Small Chest, Sandbar Isle)",
- "Small Chest 37" => "Chest 36 (Small Chest, Sandbar Isle)",
- "Small Chest 38" => "Chest 37 (Small Chest, Sandbar Isle)",
- "Small Chest 39" => "Chest 38 (Small Chest, Sandbar Isle)",
- "Small Chest 40" => "Chest 39 (Small Chest, Sandbar Isle)",
- "Small Chest 41" => "Chest 40 (Small Chest, Sandbar Isle)",
- "Small Chest 42" => "Chest 41 (Small Chest, Horseshoe Island)",
+ "Small Chest 21" => "Chest 21 (Small Chest, Huddled Isles, Within a Sunken Ship)",
+ "Small Chest 22" => "Chest 22 (Small Chest, Huddled Isles, Within a Sunken Ship)",
+ "Small Chest 23" => "Chest 23 (Small Chest, Isla de los Mastiles: Underwater Alcove)",
+ "Small Chest 24" => "Chest 24 (Small Chest, Isla de los Mastiles: Underwater Alcove)",
+ "Small Chest 25" => "Chest 45 (Small Chest, The Leviathan)",
+ "Small Chest 26" => "Chest 25 (Small Chest, Isla Verdemontana, Top of 2nd Cliff)",
+ "Small Chest 27" => "Chest 26 (Small Chest, Sandbar Isle: Underwater, North Side)",
+ "Small Chest 28" => "Chest 27 (Small Chest, Sandbar Isle, On Right Island Surrounded by Water)",
+ "Small Chest 29" => "Chest 28 (Small Chest, Sandbar Isle: Underwater, South Side Near Seaweed)",
+ "Small Chest 30" => "Chest 29 (Small Chest, Sandbar Isle: Underwater, South Side Near Broken Box)",
+ "Small Chest 31" => "Chest 30 (Small Chest, Sandbar Isle: Underwater, South Side On Rock Near Surface)",
+ "Small Chest 32" => "Chest 31 (Small Chest, Sandbar Isle: Underwater Alcove, Inside the Lucky Emblem)",
+ "Small Chest 33" => "Chest 32 (Small Chest, Sandbar Isle: Underwater Alcove, Inside the Lucky Emblem)",
+ "Small Chest 34" => "Chest 33 (Small Chest, Sandbar Isle: Underwater Alcove)",
+ "Small Chest 35" => "Chest 34 (Small Chest, Sandbar Isle: Underwater Alcove)",
+ "Small Chest 36" => "Chest 35 (Small Chest, Sandbar Isle: Underwater Alcove)",
+ "Small Chest 37" => "Chest 36 (Small Chest, Sandbar Isle: Underwater Alcove)",
+ "Small Chest 38" => "Chest 37 (Small Chest, Sandbar Isle: Underwater Alcove)",
+ "Small Chest 39" => "Chest 38 (Small Chest, Sandbar Isle: Underwater Alcove)",
+ "Small Chest 40" => "Chest 39 (Small Chest, Sandbar Isle: Underwater Alcove)",
+ "Small Chest 41" => "Chest 40 (Small Chest, Sandbar Isle: Underwater Alcove)",
+ "Small Chest 42" => "Chest 41 (Small Chest, Horseshoe Island, Behind Rocks)",
"Small Chest 43" => "Chest 42 (Small Chest, Horseshoe Island)",
"Small Chest 44" => "Chest 43 (Small Chest, Horseshoe Island)",
"Small Chest 45" => "Chest 44 (Small Chest, Horseshoe Island)",
@@ -1564,70 +1564,70 @@ public static string GetChestLocation(this string chest, DataTableEnum dataTable
},
DataTableEnum.TreasureBX => chest switch
{
- "Large Chest 1" => "Chest 3 (Large Chest, The City: South District)",
- "Large Chest 5" => "Chest 34 (Large Chest, The City: Central District)",
- "Large Chest 6" => "Chest 35 (Large Chest, The City: South District)",
- "Large Chest 7" => "Chest 36 (Large Chest, The City: Central District)",
- "Small Chest 1" => "Chest 1 (Small Chest, The City: Central District)",
- "Small Chest 2" => "Chest 2 (Small Chest, The City: South District)",
- "Small Chest 3" => "Chest 4 (Small Chest, The City: South District)",
- "Small Chest 4" => "Chest 5 (Small Chest, The City: North District)",
- "Small Chest 5" => "Chest 6 (Small Chest, The City: North District)",
- "Small Chest 6" => "Chest 7 (Small Chest, The City: South District)",
- "Small Chest 7" => "Chest 8 (Small Chest, The City: Central District)",
- "Small Chest 8" => "Chest 9 (Small Chest, The City: Central District)",
- "Small Chest 9" => "Chest 10 (Small Chest, The City: North District)",
- "Small Chest 10" => "Chest 11 (Small Chest, The City: South District)",
- "Small Chest 11" => "Chest 12 (Small Chest, The City: South District)",
- "Small Chest 12" => "Chest 13 (Small Chest, The City: North District)",
- "Small Chest 13" => "Chest 14 (Small Chest, The City: North District)",
- "Small Chest 14" => "Chest 15 (Small Chest, The City: North District)",
- "Small Chest 15" => "Chest 16 (Small Chest, The City: Central District)",
- "Small Chest 16" => "Chest 17 (Small Chest, The City: Central District)",
- "Small Chest 17" => "Chest 18 (Small Chest, The City: South District)",
- "Small Chest 18" => "Chest 19 (Small Chest, The City: North District)",
- "Small Chest 19" => "Chest 20 (Small Chest, The City: South District)",
- "Small Chest 20" => "Chest 21 (Small Chest, The City: South District)",
- "Small Chest 21" => "Chest 22 (Small Chest, The City: North District)",
- "Small Chest 22" => "Chest 23 (Small Chest, The City: Central District)",
- "Small Chest 23" => "Chest 24 (Small Chest, The City: Central District)",
- "Small Chest 24" => "Chest 25 (Small Chest, The City: Central District)",
- "Small Chest 25" => "Chest 26 (Small Chest, The City: Central District)",
- "Small Chest 26" => "Chest 27 (Small Chest, The City: South District)",
- "Small Chest 27" => "Chest 28 (Small Chest, The City: North District)",
- "Small Chest 28" => "Chest 29 (Small Chest, The City: North District)",
- "Small Chest 29" => "Chest 30 (Small Chest, The City: Central District)",
- "Small Chest 30" => "Chest 31 (Small Chest, The City: South District)",
- "Small Chest 31" => "Chest 32 (Small Chest, The City: North District)",
- "Small Chest 32" => "Chest 33 (Small Chest, The City: North District)",
+ "Large Chest 1" => "Chest 3 (Large Chest, The City: South District, On Sidewalk North of M Building)",
+ "Large Chest 5" => "Chest 34 (Large Chest, The City: Central District, On the Red Circle Platform)",
+ "Large Chest 6" => "Chest 35 (Large Chest, The City: South District, On Top of M Building)",
+ "Large Chest 7" => "Chest 36 (Large Chest, The City: Central District, Within Breakable Dive Object)",
+ "Small Chest 1" => "Chest 1 (Small Chest, The City: Central District, Top of East Building Under Platform)",
+ "Small Chest 2" => "Chest 2 (Small Chest, The City: South District, Southeast Building Roof, South Side)",
+ "Small Chest 3" => "Chest 4 (Small Chest, The City: South District, Underneath West Ramp to Highway)",
+ "Small Chest 4" => "Chest 5 (Small Chest, The City: North District, South of Monorail Behind Boxes)",
+ "Small Chest 5" => "Chest 6 (Small Chest, The City: North District), Northeast Building Lower Platform",
+ "Small Chest 6" => "Chest 7 (Small Chest, The City: South District, On Sidewalk East of M Building)",
+ "Small Chest 7" => "Chest 8 (Small Chest, The City: Central District, Between the Air Vents)",
+ "Small Chest 8" => "Chest 9 (Small Chest, The City: Central District, Upper Level of Blue Circle Building)",
+ "Small Chest 9" => "Chest 10 (Small Chest, The City: North District, South of Monorail East Side)",
+ "Small Chest 10" => "Chest 11 (Small Chest, The City: South District, On Top of Triple Billboards Building)",
+ "Small Chest 11" => "Chest 12 (Small Chest, The City: South District, On Top of Triple Billboards Building)",
+ "Small Chest 12" => "Chest 13 (Small Chest, The City: North District, Underneath Monorail West Side)",
+ "Small Chest 13" => "Chest 14 (Small Chest, The City: North District, On Sloped Roof North of Monorail)",
+ "Small Chest 14" => "Chest 15 (Small Chest, The City: North District, On Flat Roof North on Monorail)",
+ "Small Chest 15" => "Chest 16 (Small Chest, The City: Central District, Balcony Underneath West Ramp)",
+ "Small Chest 16" => "Chest 17 (Small Chest, The City: Central District, Next to Green Roofs Building)",
+ "Small Chest 17" => "Chest 18 (Small Chest, The City: South District, On Top of Triple Billboards Building)",
+ "Small Chest 18" => "Chest 19 (Small Chest, The City: North District, Northeast Building On Roof)",
+ "Small Chest 19" => "Chest 20 (Small Chest, The City: South District, Southeast of Save Point)",
+ "Small Chest 20" => "Chest 21 (Small Chest, The City: South District, On Sidewalk at M Building)",
+ "Small Chest 21" => "Chest 22 (Small Chest, The City: North District, Near Save Point in Parking Lot)",
+ "Small Chest 22" => "Chest 23 (Small Chest, The City: Central District, North of Breakable Dive Object)",
+ "Small Chest 23" => "Chest 24 (Small Chest, The City: Central District, Lower Level of Blue Circle Building)",
+ "Small Chest 24" => "Chest 25 (Small Chest, The City: Central District, On Railing Underneath Highway)",
+ "Small Chest 25" => "Chest 26 (Small Chest, The City: Central District, Southeast of Red Circle Platform)",
+ "Small Chest 26" => "Chest 27 (Small Chest, The City: South District, East of Save Point Above Highway)",
+ "Small Chest 27" => "Chest 28 (Small Chest, The City: North District, On Building Railing Above Monorail)",
+ "Small Chest 28" => "Chest 29 (Small Chest, The City: North District, Alleyway Behind Boxes)",
+ "Small Chest 29" => "Chest 30 (Small Chest, The City: Central District, Top of East Building Under Platform)",
+ "Small Chest 30" => "Chest 31 (Small Chest, The City: South District, On Building Southeast of M Building)",
+ "Small Chest 31" => "Chest 32 (Small Chest, The City: North District, Alleyway East of Boxes)",
+ "Small Chest 32" => "Chest 33 (Small Chest, The City: North District, Top of Building Above Monorail)",
_ => "",
},
DataTableEnum.TreasureKG => chest switch
{
- "Large Chest 1" => "Chest 1 (Large Chest, The Badlands)",
- "Large Chest 2" => "Chest 3 (Large Chest, The Skein of Severance: Trail of Valediction)",
- "Small Chest 1" => "Chest 4 (Small Chest, The Skein of Severance: Trail of Valediction)",
- "Small Chest 2" => "Chest 5 (Small Chest, The Skein of Severance: Trail of Valediction/Twist of Isolation)",
- "Small Chest 3" => "Chest 6 (Small Chest, The Skein of Severance: Twist of Isolation)",
- "Small Chest 4" => "Chest 2 (Small Chest, The Badlands)",
+ "Large Chest 1" => "Chest 1 (Large Chest, The Badlands, Before Save Point)",
+ "Large Chest 2" => "Chest 3 (Large Chest, The Skein of Severance: Trail of Valediction, Near Save Point)",
+ "Small Chest 1" => "Chest 4 (Small Chest, The Skein of Severance: Trail of Valediction, Path Between 1st Org. XIII Fights)",
+ "Small Chest 2" => "Chest 5 (Small Chest, The Skein of Severance: Trail of Valediction, Switch Floor Maze)",
+ "Small Chest 3" => "Chest 6 (Small Chest, The Skein of Severance: Twist of Isolation, Path Between 2nd Org. XIII Fights)",
+ "Small Chest 4" => "Chest 2 (Small Chest, The Badlands, After Save Point)",
_ => "",
},
DataTableEnum.TreasureEW => chest switch
{
- "Large Chest 1" => "Chest 1 (Large Chest, The Final World)",
+ "Large Chest 1" => "Chest 1 (Large Chest, The Final World, Between Two Portals)",
_ => "",
},
DataTableEnum.TreasureBT => chest switch
{
- "Large Chest 1" => "Chest 1 (Large Chest, The Stairway to the Sky)",
- "Large Chest 2" => "Chest 2 (Large Chest, Breezy Quarter)",
- "Small Chest 1" => "Chest 3 (Small Chest, Breezy Quarter)",
- "Small Chest 2" => "Chest 4 (Small Chest, Breezy Quarter)",
- "Small Chest 3" => "Chest 5 (Small Chest, Breezy Quarter)",
- "Small Chest 4" => "Chest 6 (Small Chest, Breezy Quarter)",
- "Small Chest 5" => "Chest 7 (Small Chest, Breezy Quarter)",
- "Small Chest 6" => "Chest 8 (Small Chest, Breezy Quarter)",
- "Small Chest 7" => "Chest 9 (Small Chest, Breezy Quarter)",
+ "Large Chest 1" => "Chest 1 (Large Chest, The Stairway to the Sky, Near Save Point)",
+ "Large Chest 2" => "Chest 2 (Large Chest, Breezy Quarter, Near Moogle Shop)",
+ "Small Chest 1" => "Chest 3 (Small Chest, Breezy Quarter, Upper Area North of Save Point)",
+ "Small Chest 2" => "Chest 4 (Small Chest, Breezy Quarter, Within the Windmill Tower)",
+ "Small Chest 3" => "Chest 5 (Small Chest, Breezy Quarter, Near the Windmill Tower)",
+ "Small Chest 4" => "Chest 6 (Small Chest, Breezy Quarter, Waterway Below Battle Arena)",
+ "Small Chest 5" => "Chest 7 (Small Chest, Breezy Quarter, South of Fountain Near Stairs)",
+ "Small Chest 6" => "Chest 8 (Small Chest, Breezy Quarter, South of Daybreak Town's History)",
+ "Small Chest 7" => "Chest 9 (Small Chest, Breezy Quarter, Northmost Corner)",
_ => "",
},
_ => "",
@@ -1773,7 +1773,7 @@ public static string LevelIdToLevelName(this string level)
"he_05" => "Ice & Lava Titan Arena",
"he_06" => "Tornado Titan Arena",
- "tt_01" => "Town Square",
+ "tt_01" => "The Neighborhood",
"ts_01" => "Andy's House",
"ts_02" => "Galaxy Toys",
@@ -1783,26 +1783,26 @@ public static string LevelIdToLevelName(this string level)
"ra_01" => "The Forest",
"ra_02" => "The Kingdom",
- "mi_01" => "The Lobby",
+ "mi_01" => "Monsters Inc.",
"mi_02" => "The Factory",
- "mi_03" => "The Powerplant",
+ "mi_03" => "The Power Plant",
"mi_04" => "The Door Vault",
- "fz_01" => "North Mountain",
- "fz_02" => "Ice Labyrinth",
+ "fz_01" => "The North Mountain",
+ "fz_02" => "The Labyrinth of Ice",
"fz_03" => "Down the Mountain",
- "fz_04" => "North Mountain",
+ "fz_04" => "The North Mountain",
"fz_06" => "Skoll Arena",
- "bx_01" => "Bridge",
+ "bx_01" => "The Bridge",
"bx_02" => "The City",
"ca_01" => "Port Royal",
"ca_02" => "The High Seas",
- "ca_03" => "Davy Jones Arena",
+ "ca_03" => "Shipwreck Cove",
"ca_04" => "Davy Jones' Locker",
- "dw_21" or "dw_22" => "Dark World",
+ "dw_21" or "dw_22" => "The Realm of Darkness",
"kg_01" => "The Badlands",
"kg_02" or "kg_05" => "The Skein of Severance",
@@ -1842,7 +1842,7 @@ public static string LevelIdToLevelName(this string level)
"rg_14" => "Luxord Arena",
"rg_15" => "Larxene Arena",
"rg_16" => "Marluxia Arena",
- "rg_17" => "Saix Arena",
+ "rg_17" => "Saïx Arena",
"rg_18" => "Terra-Xehanort Arena",
"rg_19" => "Dark Riku Arena",
"rg_20" => "Vanitas Arena",
@@ -1947,7 +1947,7 @@ public static string EnemyIdToEnemyName(this string enemy)
"e_ex302" => "Young Xehanort",
"e_ex304" => "Xemnas",
"e_ex305" => "Xigbar",
- "e_ex306" => "Saix",
+ "e_ex306" => "Saïx",
"e_ex307" => "Luxord",
"e_ex308" => "Marluxia",
"e_ex309" => "Larxene",
@@ -1961,7 +1961,7 @@ public static string EnemyIdToEnemyName(this string enemy)
"e_ex352" => "Data Ansem",
"e_ex353" => "Data Xemnas",
"e_ex354" => "Data Xigbar",
- "e_ex355" => "Data Saix",
+ "e_ex355" => "Data Saïx",
"e_ex356" => "Data Luxord",
"e_ex357" => "Data Marluxia",
"e_ex358" => "Data Larxene",
@@ -2029,8 +2029,8 @@ public static string BossIdToBossName(this string boss)
"BOSS_026" or "e_ex311_Pawn" => "Vanitas",
"BOSS_027" or "e_ex325_Pawn" => "Terra-Xehanort",
"BOSS_028" or "e_ex310_Pawn" => "Xion",
- "BOSS_029" or "e_ex306_Pawn_s0" => "Saix 1",
- "BOSS_030" or "e_ex306_Pawn" => "Saix 2",
+ "BOSS_029" or "e_ex306_Pawn_s0" => "Saïx 1",
+ "BOSS_030" or "e_ex306_Pawn" => "Saïx 2",
"BOSS_031" or "e_ex316_Pawn" => "Ansem Seeker of Darkness",
"BOSS_032" or "e_ex304_Pawn" => "Xemnas",
"BOSS_033" or "e_ex302_Pawn" => "Young Xehanort",
@@ -2071,9 +2071,9 @@ public static string BossIdToBossName(this string boss)
"BOSS_068" or "e_ex325_Pawn_s10" => "Terra-Xehanort (KG DLC)",
"BOSS_069" or "e_ex311_Pawn_s10" => "Vanitas (KG DLC)",
"BOSS_070" or "e_ex310_Pawn_s10" => "Xion (KG DLC)",
- "BOSS_071" or "e_ex306_Pawn_s11" => "Saix 1 (KG DLC)",
- "BOSS_072" or "e_ex306_Pawn_s10" => "Saix 2 (KG DLC)",
- "BOSS_073" or "e_ex304_Pawn_s11" => "Xemnas (Saix - KG DLC)",
+ "BOSS_071" or "e_ex306_Pawn_s11" => "Saïx 1 (KG DLC)",
+ "BOSS_072" or "e_ex306_Pawn_s10" => "Saïx 2 (KG DLC)",
+ "BOSS_073" or "e_ex304_Pawn_s11" => "Xemnas (Saïx - KG DLC)",
"BOSS_074" or "e_ex316_Pawn_s10" => "Ansem Seeker of Darkness (KG DLC)",
"BOSS_075" or "e_ex304_Pawn_s10" => "Xemnas (KG DLC)",
"BOSS_076" or "e_ex302_Pawn_s10" => "Young Xehanort (KG DLC)",
@@ -2100,7 +2100,7 @@ public static string BossIdToBossName(this string boss)
"BOSS_097" or "e_ex356_Pawn" => "Data Luxord",
"BOSS_098" or "e_ex358_Pawn" => "Data Larxene",
"BOSS_099" or "e_ex357_Pawn" => "Data Marluxia",
- "BOSS_0100" or "e_ex355_Pawn" => "Data Saix",
+ "BOSS_0100" or "e_ex355_Pawn" => "Data Saïx",
"BOSS_0101" or "e_ex362_Pawn" => "Data Terra-Xehanort",
"BOSS_0102" or "e_ex361_Pawn" => "Data Dark Riku",
"BOSS_0103" or "e_ex360_Pawn" => "Data Vanitas",
diff --git a/KH3Randomizer/Data/HintService.cs b/KH3Randomizer/Data/HintService.cs
index 60540ea..13a8f68 100644
--- a/KH3Randomizer/Data/HintService.cs
+++ b/KH3Randomizer/Data/HintService.cs
@@ -13,7 +13,7 @@ public class HintService
// Don't provide empty hints for these pools
List blockedEmptyPools = new List()
{
- "Equipment Abilities", "Fullcourse Abilities", "Flantastic Flans", "Minigames", "Battle Portals", "Always On"
+ "Equipment Abilities", "Fullcourse Abilities", "Flantastic Flans", "Minigames", "Battlegates", "Always On"
};
public byte[] GenerateHints(string seed, Dictionary>> randomizedOptions, Dictionary availablePools, string hintType, List importantChecks, ref Dictionary> hintValues)
@@ -82,7 +82,7 @@ public byte[] GenerateHints(string seed, DictionaryString used for hints
public string GetCategoryHint(string hintKey, List hintValue)
{
- return hintValue.Count == 1 ? $"There is {hintValue.Count} check {hintKey}" : $"There are {hintValue.Count} checks {hintKey}";
+ return hintValue.Count == 1 ? $"There is {hintValue.Count} important check {hintKey}" : $"There are {hintValue.Count} important checks {hintKey}";
}
///
@@ -364,9 +364,9 @@ public string GetHintItemLocation(Dictionary GetLocation(DataTableEnum category, string subCateg
#region Olympus
case "Vbonus_001":
world = "Olympus";
- description = "(Cliff Ascent Heartless)";
+ description = "(Mount Olympus: Cliff Ascent Heartless)";
break;
case "Vbonus_002":
world = "Olympus";
- description = "(Thebes Agora Flame Cores)";
+ description = "(Thebes: Agora Flame Cores)";
break;
case "Vbonus_005":
world = "Olympus";
- description = "(Thebes Overlook Flame Cores)";
+ description = "(Thebes: Overlook Flame Cores)";
break;
case "Vbonus_006":
world = "Olympus";
- description = "(Thebes Garden Flame Cores)";
+ description = "(Thebes: Garden Flame Cores)";
break;
case "Vbonus_007":
world = "Olympus";
- description = "(Thebes Alleyway Heartless)";
+ description = "(Thebes: Alleyway Heartless)";
break;
case "Vbonus_008":
world = "Olympus";
- description = "(Rock Troll Boss)";
+ description = "(Defeat Rock Troll)";
break;
case "Vbonus_010":
world = "Olympus";
- description = "(Rock Titan Boss)";
+ description = "(Defeat Rock Titan)";
break;
case "Vbonus_011":
world = "Olympus";
- description = "(Satyr Heartless)";
+ description = "(Realm of the Gods: Courtyard Satyrs)";
break;
case "Vbonus_013":
world = "Olympus";
- description = "(Tornado Titan Boss)";
+ description = "(Defeat Tornado Titan)";
break;
#endregion Olympus
#region Twilight Town
case "Vbonus_014":
world = "Twilight Town";
- description = "(Demon Tide Boss)";
+ description = "(Defeat Demon Tide)";
break;
case "Vbonus_015":
world = "Twilight Town";
@@ -536,7 +536,7 @@ public Tuple GetLocation(DataTableEnum category, string subCateg
break;
case "Vbonus_016":
world = "Twilight Town";
- description = "(The Old Mansion Nobodies & Heartless)";
+ description = "(The Old Mansion Heartless & Nobodies)";
break;
#endregion Twilight Town
@@ -547,15 +547,15 @@ public Tuple GetLocation(DataTableEnum category, string subCateg
break;
case "Vbonus_018":
world = "Toy Box";
- description = "(Galaxy Toys Main Floor: 1F Gigas)";
+ description = "(Galaxy Toys: Main Floor: 1F Gigas)";
break;
case "Vbonus_019":
world = "Toy Box";
- description = "(Galaxy Toys Action Figures Supreme Smashers)";
+ description = "(Galaxy Toys: Action Figures Supreme Smashers)";
break;
case "Vbonus_020":
world = "Toy Box";
- description = "(Angelic Amber Boss)";
+ description = "(Defeat Angelic Amber)";
break;
case "Vbonus_021":
world = "Toy Box";
@@ -563,34 +563,34 @@ public Tuple GetLocation(DataTableEnum category, string subCateg
break;
case "Vbonus_022":
world = "Toy Box";
- description = "(Verum Rex: Beat of Lead)";
+ description = "(Complete Verum Rex: Beat of Lead during the Story)";
break;
case "Vbonus_023":
world = "Toy Box";
- description = "(King of Toys Boss)";
+ description = "(Defeat King of Toys)";
break;
#endregion Toy Box
#region Kingdom of Corona
case "Vbonus_024":
world = "Kingdom of Corona";
- description = "(Hills Heartless 1)";
+ description = "(The Forest: Hills Heartless)";
break;
case "Vbonus_025":
world = "Kingdom of Corona";
- description = "(Hills Heartless 2)";
+ description = "(The Forest: Hills Chief Puffs & Puffballs)";
break;
case "Vbonus_026":
world = "Kingdom of Corona";
- description = "(Hills Reapers)";
+ description = "(The Forest: Hills Reapers)";
break;
case "Vbonus_027":
world = "Kingdom of Corona";
- description = "(Chaos Carriage Mini-Boss)";
+ description = "(Defeat Chaos Carriage)";
break;
case "Vbonus_028":
world = "Kingdom of Corona";
- description = "(The Kingdom Nobodies)";
+ description = "(The Kingdom: Wharf Nobodies)";
break;
case "Vbonus_029":
world = "Kingdom of Corona";
@@ -598,167 +598,167 @@ public Tuple GetLocation(DataTableEnum category, string subCateg
break;
case "Vbonus_030":
world = "Kingdom of Corona";
- description = "(Grim Guardianess Boss)";
+ description = "(Defeat Grim Guardianess)";
break;
#endregion Kingdom of Corona
#region Monstropolis
case "Vbonus_032":
world = "Monstropolis";
- description = "(Lobby & Offices Unversed)";
+ description = "(Monsters Inc: Lobby & Offices Unversed)";
break;
case "Vbonus_033":
world = "Monstropolis";
- description = "(Laugh Floor Unversed)";
+ description = "(Monsters Inc.: Laugh Floor Unversed)";
break;
case "Vbonus_034":
world = "Monstropolis";
- description = "(Upper Level Heartless)";
+ description = "(The Door Vault: Upper Level Heartless)";
break;
case "Vbonus_035":
world = "Monstropolis";
- description = "(Second Floor Unversed & Heartless)";
+ description = "(The Factory: Second Floor Heartless & Unversed)";
break;
case "Vbonus_036":
world = "Monstropolis";
- description = "(Second Floor Unversed)";
+ description = "(The Factory: Second Floor Unversed)";
break;
case "Vbonus_037":
world = "Monstropolis";
- description = "(Accessway Unversed & Heartless)";
+ description = "(The Power Plant: Accessway Heartless & Unversed)";
break;
case "Vbonus_038":
world = "Monstropolis";
- description = "(Tank Yard Heartless)";
+ description = "(The Power Plant: Tank Yard Heartless)";
break;
case "Vbonus_039":
world = "Monstropolis";
- description = "(Tank Yard Unversed)";
+ description = "(The Power Plant: Tank Yard Unversed)";
break;
case "Vbonus_040":
world = "Monstropolis";
- description = "(Lump of Horror Boss)";
+ description = "(Defeat Lump of Horror)";
break;
#endregion Monstropolis
#region Arendelle
case "Vbonus_041":
world = "Arendelle";
- description = "(Rock Troll & Winterhorns Mini-Boss)";
+ description = "(Defeat Rock Troll & Winterhorns)";
break;
case "Vbonus_042":
world = "Arendelle";
- description = "(1st Ninja Nobodies)";
+ description = "(The Labyrinth of Ice: Middle Tier Ninjas I)";
break;
case "Vbonus_043":
world = "Arendelle";
- description = "(2nd Ninja Nobodies)";
+ description = "(The Labyrinth of Ice: Lower Tier Ninjas II)";
break;
case "Vbonus_044":
world = "Arendelle";
- description = "(3rd Ninja Nobodies)";
+ description = "(The Labyrinth of Ice: Middle Tier Ninjas III)";
break;
case "Vbonus_045":
world = "Arendelle";
- description = "(4th Ninja Nobodies)";
+ description = "(The Labyrinth of Ice: Middle Tier Ninjas IV)";
break;
case "Vbonus_047":
world = "Arendelle";
- description = "(Marshmallow Boss)";
+ description = "(Defeat Marshmallow)";
break;
case "Vbonus_048":
world = "Arendelle";
- description = "(Frost Serpent Heartless)";
+ description = "(Frozen Slider Frost Serpents)";
break;
case "Vbonus_049":
world = "Arendelle";
- description = "(Valley of Ice Heartless)";
+ description = "(The North Mountain: Valley of Ice Heartless)";
break;
case "Vbonus_050":
world = "Arendelle";
- description = "(Skoll Boss)";
+ description = "(Defeat Skoll)";
break;
#endregion Arendelle
#region San Fransokyo
case "Vbonus_051":
world = "San Fransokyo";
- description = "(Metal Troll Mini-Boss)";
+ description = "(Defeat Metal Troll on The Bridge)";
break;
case "Vbonus_052":
world = "San Fransokyo";
- description = "(Meeting Hiro in the Garage)";
+ description = "(Meet Big Hero 6 in Hiro's Garage)";
break;
case "Vbonus_053":
world = "San Fransokyo";
- description = "(Satyr Heartless Roof)";
+ description = "(The City Heartless at Hiro's indicator)";
break;
case "Vbonus_054":
world = "San Fransokyo";
- description = "(Catastrochorus Boss)";
+ description = "(Defeat Catastrochorus)";
break;
case "Vbonus_055":
world = "San Fransokyo";
- description = "(Big Hero 6 Rescue Mission)";
+ description = "(Rescue Big Hero 6 from Darkubes)";
break;
case "Vbonus_056":
world = "San Fransokyo";
- description = "(Darkube Boss)";
+ description = "(Defeat Darkubes)";
break;
case "Vbonus_057":
world = "San Fransokyo";
- description = "(Dark Baymax Boss)";
+ description = "(Defeat Dark Baymax)";
break;
#endregion San Fransokyo
#region The Caribbean
case "Vbonus_058":
world = "The Caribbean";
- description = "(Black Pearl Davy Jones Locker)";
+ description = "(Davy Jones' Locker Anchor Raiders)";
break;
case "Vbonus_059":
world = "The Caribbean";
- description = "(1st Ship Battle)";
+ description = "(1st Ship Battle - Over the Edge)";
break;
case "Vbonus_060":
world = "The Caribbean";
- description = "(Raging Vulture Boss)";
+ description = "(Defeat Raging Vulture)";
break;
case "Vbonus_061":
world = "The Caribbean";
- description = "(Lightning Angler Boss)";
+ description = "(Defeat Lightning Angler)";
break;
case "Vbonus_062":
world = "The Caribbean";
- description = "(Luxord Ship Race)";
+ description = "(Race Luxord to Port Royal)";
break;
case "Vbonus_063":
world = "The Caribbean";
- description = "(2nd Ship Battle)";
+ description = "(2nd Ship Battle - Port Royal Waters)";
break;
case "Vbonus_064":
world = "The Caribbean";
- description = "(3rd Ship Battle)";
+ description = "(3rd Ship Battle - Forsaken Isle)";
break;
case "Vbonus_065":
world = "The Caribbean";
- description = "(Kraken Boss)";
+ description = "(Defeat Kraken)";
break;
case "Vbonus_066":
world = "The Caribbean";
- description = "(Davy Jones Boss)";
+ description = "(Defeat Davy Jones)";
break;
#endregion The Caribbean
case "Vbonus_067":
world = "The Dark World";
- description = "(Anti-Aqua Boss)";
+ description = "(Defeat Anti-Aqua)";
break;
#region The Keyblade Graveyard
case "Vbonus_068":
world = "The Keyblade Graveyard";
- description = "(Lich Boss)";
+ description = "(Defeat Lich in San Fransokyo)";
break;
case "Vbonus_069":
world = "The Keyblade Graveyard";
@@ -766,27 +766,27 @@ public Tuple GetLocation(DataTableEnum category, string subCateg
break;
case "Vbonus_070":
world = "The Keyblade Graveyard";
- description = "(Demon Tide Boss)";
+ description = "(Defeat Demon Tide)";
break;
case "Vbonus_071":
world = "The Keyblade Graveyard";
- description = "(Xigbar & Dark Riku Boss)";
+ description = "(Defeat Xigbar & Dark Riku)";
break;
case "Vbonus_072":
world = "The Keyblade Graveyard";
- description = "(Luxord, Larxene & Marluxia Boss)";
+ description = "(Defeat Luxord, Marluxia, & Larxene)";
break;
case "Vbonus_073":
world = "The Keyblade Graveyard";
- description = "(Terra-Xehanort & Vanitas Boss)";
+ description = "(Defeat Vanitas & Terra-Xehanort)";
break;
case "Vbonus_074":
world = "The Keyblade Graveyard";
- description = "(Saix Boss)";
+ description = "(Defeat Saix)";
break;
case "Vbonus_075":
world = "The Keyblade Graveyard";
- description = "(Young Xehanort, Ansem & Xemnas Boss)";
+ description = "(Defeat Young Xehanort, Ansem, & Xemnas)";
break;
case "Vbonus_076":
world = "The Keyblade Graveyard";
@@ -797,7 +797,7 @@ public Tuple GetLocation(DataTableEnum category, string subCateg
#region The Final World
case "Vbonus_082":
world = "The Final World";
- description = "(Darkside Tutorial Boss)";
+ description = "(Defeat Darkside)";
break;
case "Vbonus_083":
world = "The Final World";
@@ -812,103 +812,103 @@ public Tuple GetLocation(DataTableEnum category, string subCateg
#region Mini-Games
case "VBonus_Minigame001":
world = "Toy Box";
- description = "(A-rank Verum Rex: Beat of Lead)";
+ description = "(Obtain A-Rank in Verum Rex: Beat of Lead)";
break;
case "VBonus_Minigame002":
world = "Kingdom of Corona";
- description = "(A-rank Festival Dance)";
+ description = "(Obtain A-Rank in Festival Dance)";
break;
case "VBonus_Minigame003":
world = "Arendelle";
- description = "(A-rank Frozen Slider)";
+ description = "(Obtain A-Rank in Frozen Slider)";
break;
case "VBonus_Minigame004":
world = "Arendelle";
- description = "(All Treasures Frozen Slider)";
+ description = "(Collect All Treasures in Frozen Slider)";
break;
case "VBonus_Minigame005":
world = "San Fransokyo";
- description = "(A-rank Flash Tracer 1 (Fred))";
+ description = "(Obtain A-Rank in Flash Tracer: Course A (Fred))";
break;
case "VBonus_Minigame006":
world = "San Fransokyo";
- description = "(A-rank Flash Tracer 2 (Go Go))";
+ description = "(Obtain A-Rank in Flash Tracer: Course B (Go Go))";
break;
#endregion Mini-Games
#region Flans
case "VBonus_Minigame007":
world = "Olympus";
- description = "(A-rank Cherry Flan)";
+ description = "(Encounter Cherry Flan and obtain 20,000 points)";
break;
case "VBonus_Minigame008":
world = "Toy Box";
- description = "(A-rank Strawberry Flan)";
+ description = "(Encounter Strawberry Flan and obtain 17,000 points)";
break;
case "VBonus_Minigame009":
world = "Kingdom of Corona";
- description = "(A-rank Orange Flan)";
+ description = "(Encounter Orange Flan and obtain 23,000 points)";
break;
case "VBonus_Minigame010":
world = "Monstropolis";
- description = "(A-rank Banana Flan)";
+ description = "(Encounter Banana Flan and obtain 20,000 points)";
break;
case "VBonus_Minigame011":
world = "Arendelle";
- description = "(A-rank Grape Flan)";
+ description = "(Encounter Grape Flan and obtain 20,000 points)";
break;
case "VBonus_Minigame012":
world = "The Caribbean";
- description = "(A-rank Watermelon Flan)";
+ description = "(Encounter Watermelon Flan and obtain 28,000 points)";
break;
case "VBonus_Minigame013":
world = "San Fransokyo";
- description = "(A-rank Melon Flan)";
+ description = "(Encounter Honeydew Flan and obtain 15,000 points)";
break;
#endregion Flans
#region Re+Mind
case "VBonus_DLC_001":
- world = "Re+Mind (The Keyblade Graveyard)";
- description = "(Dark Inferno Boss)";
+ world = "Re:Mind (The Keyblade Graveyard)";
+ description = "(Defeat Dark Inferno χ)";
break;
case "VBonus_DLC_002":
- world = "Re+Mind (The Keyblade Graveyard)";
- description = "(Anti-Aqua Boss)";
+ world = "Re:Mind (The Keyblade Graveyard)";
+ description = "(Defeat Anti-Aqua)";
break;
case "VBonus_DLC_003":
- world = "Re+Mind (The Keyblade Graveyard)";
- description = "(Terra-Xehanort Boss)";
+ world = "Re:Mind (The Keyblade Graveyard)";
+ description = "(Defeat Terra-Xehanort)";
break;
case "VBonus_DLC_004":
- world = "Re+Mind (The Keyblade Graveyard)";
- description = "(Xigbar & Dark Riku Boss)";
+ world = "Re:Mind (The Keyblade Graveyard)";
+ description = "(Defeat Xigbar & Dark Riku)";
break;
case "VBonus_DLC_005":
- world = "Re+Mind (The Keyblade Graveyard)";
- description = "(Luxord, Larxene & Marluxia Boss)";
+ world = "Re:Mind (The Keyblade Graveyard)";
+ description = "(Defeat Luxord, Marluxia, & Larxene)";
break;
case "VBonus_DLC_006":
- world = "Re+Mind (The Keyblade Graveyard)";
- description = "(Terra-Xehanort & Vanitas Boss)";
+ world = "Re:Mind (The Keyblade Graveyard)";
+ description = "(Defeat Vanitas & Terra-Xehanort)";
break;
case "VBonus_DLC_007":
- world = "Re+Mind (The Keyblade Graveyard)";
- description = "(Saix Boss)";
+ world = "Re:Mind (The Keyblade Graveyard)";
+ description = "(Defeat Saix)";
break;
case "VBonus_DLC_008":
- world = "Re+Mind (The Keyblade Graveyard)";
- description = "(Young Xehanort, Ansem & Xemnas Boss)";
+ world = "Re:Mind (The Keyblade Graveyard)";
+ description = "(Defeat Young Xehanort, Ansem, & Xemnas)";
break;
case "VBonus_DLC_010":
- world = "Scala Ad Caelum";
- description = "(Darkside Boss)";
+ world = "Scala ad Caelum";
+ description = "(Defeat Darkside)";
break;
case "VBonus_DLC_015":
- world = "Scala Ad Caelum";
- description = "(Armored Xehanort Boss)";
+ world = "Scala ad Caelum";
+ description = "(Defeat Armored Xehanort)";
break;
#endregion Re+Mind
@@ -925,38 +925,54 @@ public Tuple GetLocation(DataTableEnum category, string subCateg
#region Events
case "EVENT_001":
world = "Olympus";
- description = "(Forge Goofy's Shield)";
+ description = "(Forge Knight's Shield+ for Goofy)";
break;
case "EVENT_002":
+ world = "Olympus";
+ description = "(Obtain Golden Herc Figure in Thebes: Alleyway, In Building)";
+ break;
+
case "EVENT_003":
+ world = "Olympus";
+ description = "(Obtain Golden Herc Figure in Thebes: Garden, Digged-Up Pit)";
+ break;
+
case "EVENT_004":
+ world = "Olympus";
+ description = "(Obtain Golden Herc Figure in Thebes: Garden, In Building)";
+ break;
+
case "EVENT_005":
+ world = "Olympus";
+ description = "(Obtain Golden Herc Figure in Thebes: Overlook, On Statue's Shield)";
+ break;
+
case "EVENT_006":
world = "Olympus";
- description = "(Golden Herc Statue)";
+ description = "(Obtain Golden Herc Figure in Thebes: Agora, Near Save Point)";
break;
case "EVENT_007":
world = "Olympus";
- description = "(Return Herc Statues)";
+ description = "(Return all Golden Herc Figures)";
break;
case "EVENT_008":
world = "Monstropolis";
- description = "(Defeat the Unversed before the Power Plant)";
+ description = "(The Factory: Second Floor Unversed)";
break;
case "EVENT_009":
world = "San Fransokyo";
- description = "(Rescue the Trapped Big Hero 6 Members)";
+ description = "(Rescue Big Hero 6 from Darkubes)";
break;
#endregion Events
#region Keyblades
case "TresUIMobilePortalDataAsset":
world = "Classic Kingdom";
- description = "(Complete All Classic Kingdom Games)";
+ description = "(Complete All Classic Kingdom Minigames)";
break;
case "EVENT_KEYBLADE_001":
@@ -1013,77 +1029,89 @@ public Tuple GetLocation(DataTableEnum category, string subCateg
break;
case "EVENT_HEARTBINDER_002":
world = "Toy Box";
- description = "(After Verum Rex: Beat of Lead)";
+ description = "(Complete Verum Rex: Beat of Lead during the Story)";
break;
case "EVENT_HEARTBINDER_003":
world = "Monstropolis";
- description = "(After Tank Yard Heartless)";
+ description = "(The Power Plant: Tank Yard Heartless)";
break;
case "EVENT_HEARTBINDER_004":
world = "San Fransokyo";
- description = "(After Flash Tracer)";
+ description = "(Complete Flash Tracer during the Story)";
break;
#endregion Heartbinders
- #region Battle Gates
+ #region Battlegates
case "EVENT_REPORT_001a":
case "EVENT_REPORT_001b":
+ world = "Olympus";
+ description = "(Complete Battlegate 1 in Realm of the Gods: Courtyard)";
+ break;
case "EVENT_REPORT_002a":
case "EVENT_REPORT_002b":
world = "Olympus";
- description = "(Complete Battle Portal)";
+ description = "(Complete Battlegate 2 in Realm of the Gods: Apex)";
break;
case "EVENT_REPORT_003a":
case "EVENT_REPORT_003b":
world = "Twilight Town";
- description = "(Complete Battle Portal)";
+ description = "(Complete Battlegate 3 at The Old Mansion)";
break;
case "EVENT_REPORT_004a":
case "EVENT_REPORT_004b":
+ world = "Toy Box";
+ description = "(Complete Battlegate 4 in Galaxy Toys: Kid Korral)";
+ break;
case "EVENT_REPORT_005a":
case "EVENT_REPORT_005b":
world = "Toy Box";
- description = "(Complete Battle Portal)";
+ description = "(Complete Battlegate 5 in Galaxy Toys: Main Floor: 1F)";
break;
case "EVENT_REPORT_006a":
case "EVENT_REPORT_006b":
+ world = "Kingdom of Corona";
+ description = "(Complete Battlegate 6 in The Forest: Wetlands)";
+ break;
case "EVENT_REPORT_007a":
case "EVENT_REPORT_007b":
world = "Kingdom of Corona";
- description = "(Complete Battle Portal)";
+ description = "(Complete Battlegate 7 in The Forest: Hills)";
break;
case "EVENT_REPORT_008a":
case "EVENT_REPORT_008b":
world = "Monstropolis";
- description = "(Complete Battle Portal)";
+ description = "(Complete Battlegate 8 in The Power Plant: Tank Yard)";
break;
case "EVENT_REPORT_009a":
case "EVENT_REPORT_009b":
world = "Arendelle";
- description = "(Complete Battle Portal)";
+ description = "(Complete Battlegate 9 in The Labyrinth of Ice: Middle Tier)";
break;
case "EVENT_REPORT_010a":
case "EVENT_REPORT_010b":
world = "The Caribbean";
- description = "(Complete Battle Portal)";
+ description = "(Complete Battlegate 10 in The High Seas: Huddled Isles)";
break;
case "EVENT_REPORT_011a":
case "EVENT_REPORT_011b":
+ world = "San Fransokyo";
+ description = "(Complete Battlegate 11 in The City: North District)";
+ break;
case "EVENT_REPORT_012a":
case "EVENT_REPORT_012b":
world = "San Fransokyo";
- description = "(Complete Battle Portal)";
+ description = "(Complete Battlegate 12 in The City: Central District)";
break;
case "EVENT_REPORT_013a":
case "EVENT_REPORT_013b":
world = "The Keyblade Graveyard";
- description = "(Complete Battle Portal)";
+ description = "(Complete Battlegate 13 in The Badlands)";
break;
case "EVENT_REPORT_014":
world = "The Keyblade Graveyard";
description = "(Defeat Dark Inferno)";
break;
- #endregion Battle Gates
+ #endregion Battlegates
#region Key Items
case "EVENT_KEYITEM_001":
@@ -1092,7 +1120,7 @@ public Tuple GetLocation(DataTableEnum category, string subCateg
break;
case "EVENT_KEYITEM_002":
world = "San Fransokyo";
- description = "(Hiro's Garage First Visit)";
+ description = "(Meet Big Hero 6 at Hiro's Garage)";
break;
case "EVENT_KEYITEM_003":
world = "Lucky Emblem Milestones";
@@ -1168,7 +1196,7 @@ public Tuple GetLocation(DataTableEnum category, string subCateg
break;
case DataTableEnum.TreasureBT:
- world = "Scala Ad Caelum";
+ world = "Scala ad Caelum";
description = this.GetTreasure(subCategory);
break;
case DataTableEnum.TreasureBX:
@@ -1712,13 +1740,13 @@ public string GetLevelUpAlternatives(Dictionary ReplaceableAbilities = new()
@@ -152,6 +145,33 @@ public class RandomizerService
"Vbonus_069"
};
+ // List of chests that have had issues with properly giving Abilites or VBonus rewards
+ private readonly List> ProblemChests = new()
+ {
+ // Monstropolis Chest 20
+ new Tuple("MI_SBOX_013", DataTableEnum.TreasureMI),
+
+ // Arendelle Chests 5, 11, 13, 15, & 16
+ new Tuple("FZ_SBOX_005", DataTableEnum.TreasureFZ),
+ new Tuple("FZ_SBOX_011", DataTableEnum.TreasureFZ),
+ new Tuple("FZ_SBOX_013", DataTableEnum.TreasureFZ),
+ new Tuple("FZ_SBOX_015", DataTableEnum.TreasureFZ),
+ new Tuple("FZ_SBOX_016", DataTableEnum.TreasureFZ),
+
+ // San Fransokyo Chest 17
+ new Tuple("BX_SBOX_016", DataTableEnum.TreasureBX),
+
+ // Caribbean Chests 16, 41, 42, 43, & 44
+ new Tuple("CA_SBOX_020", DataTableEnum.TreasureCA),
+ new Tuple("CA_SBOX_042", DataTableEnum.TreasureCA),
+ new Tuple("CA_SBOX_043", DataTableEnum.TreasureCA),
+ new Tuple("CA_SBOX_044", DataTableEnum.TreasureCA),
+ new Tuple("CA_SBOX_045", DataTableEnum.TreasureCA),
+
+ // Scala ad Caelum Chest 5
+ new Tuple("BT_SBOX_003", DataTableEnum.TreasureBT)
+ };
+
private readonly Dictionary> StatBalancedValues = new()
{
{ "Base Sora Stats", new Tuple(80, 120) },
@@ -170,6 +190,11 @@ public class RandomizerService
{ "Food Effect Stats", new Tuple(0, 6) }
};
+ // It looks like there are issues when processing limiters/exceptions/cleaning up
+ // This is to stop from swapping into pools that have been cleaned
+ private List BlockedCategories = new List() { };
+ private List BlockedKeys = new List() { };
+
public HintService HintService { get; set; }
public RandomizerService(HintService hintService)
@@ -275,8 +300,8 @@ public Dictionary>>
// Add some clean-up after the randomization
this.CleanUpOptions(ref randomizedOptions, defaultOptions, randomizePools, random, canUseNone);
- // Give Default Abilities To Sora (Pole Spin, Air Slide & Doubleflight) unless Exception is already ticked
- if (!exceptions["Default Abilities"])
+ // Give Default Base Abilities To Sora (Pole Spin, Air Slide & Doubleflight) unless Exception is already ticked
+ if (!exceptions["Default Base Abilities"])
{
this.GiveDefaultAbilities(ref randomizedOptions);
}
@@ -295,6 +320,9 @@ public Dictionary>>
// }
//}
+ this.BlockedCategories.Clear();
+ this.BlockedKeys.Clear();
+
return randomizedOptions;
}
@@ -786,7 +814,7 @@ public Dictionary ProcessPartyMembers(string seed, Dictionary>> randomizedOptions, Dictionary randomizePools, Dictionary exceptions, Random random, bool canUseNone = true)
{
- if (exceptions["Default Abilities"] && randomizedOptions.ContainsKey(DataTableEnum.ChrInit))
+ if (exceptions["Default Base Abilities"] && randomizedOptions.ContainsKey(DataTableEnum.ChrInit))
{
foreach (var (name, value) in randomizedOptions[DataTableEnum.ChrInit]["m_PlayerSora"])
{
@@ -794,6 +822,11 @@ public void ProcessExceptions(ref Dictionary x.Value.Any(y => !y.Key.Contains("GIVESORA") && y.Value.Any(z => z.Value == defaultAbility))).Key;
var abilitySubCategory = randomizedOptions[abilityCategory].FirstOrDefault(y => !y.Key.Contains("GIVESORA") && y.Value.Any(z => z.Value == defaultAbility)).Key;
@@ -807,6 +840,7 @@ public void ProcessExceptions(ref Dictionary x.Value.Any(y => !y.Key.Contains("GIVESORA") && y.Value.Any(z => z.Value == defaultAbility))).Key;
var abilitySubCategory = randomizedOptions[abilityCategory].FirstOrDefault(y => !y.Key.Contains("GIVESORA") && y.Value.Any(z => z.Value == defaultAbility)).Key;
@@ -836,9 +875,10 @@ public void ProcessExceptions(ref Dictionary();
+ var superslidesSeen = new List();
foreach (var (subCategory, subCategoryOptions) in randomizedOptions[DataTableEnum.VBonus])
{
@@ -846,6 +886,7 @@ public void ProcessExceptions(ref Dictionary x.Value.Any(y => !y.Key.Contains("GIVESORA") && y.Key != subCategory && !superslidesSeen.Contains(y.Key) && y.Value.Any(z => z.Key != "EquipAbility5" && z.Value == result.Value))).Key;
+
+ if (abilityBonusCategory != DataTableEnum.None)
+ {
+ abilityBonusSubCategory = randomizedOptions[abilityBonusCategory].FirstOrDefault(y => !y.Key.Contains("GIVESORA") && y.Key != subCategory && y.Value.Any(z => z.Key != "EquipAbility5" && z.Value == result.Value)).Key;
+ abilityBonus = randomizedOptions[abilityBonusCategory][abilityBonusSubCategory].FirstOrDefault(z => z.Key != "EquipAbility5" && z.Value == result.Value);
+
+ superslidesSeen.Add(subCategory);
+ }
+ }
else
{
abilityBonusCategory = randomizedOptions.FirstOrDefault(x => x.Value.Any(y => !y.Key.Contains("GIVESORA") && y.Key != subCategory && y.Value.Any(z => z.Value == result.Value))).Key;
@@ -878,9 +931,13 @@ public void ProcessExceptions(ref Dictionary>> randomizedOptions, Dictionary randomizePools, Dictionary limiters, Random random, bool canUseNone = true)
{
// Handle Level Up Limit
- if (randomizedOptions.ContainsKey(DataTableEnum.LevelUp) && limiters["Level Up Limit"] != 50)
+ /*if (randomizedOptions.ContainsKey(DataTableEnum.LevelUp) && limiters["Level Up Limit"] != 50)
{
var levelStart = limiters["Level Up Limit"];
for (int i = levelStart; i <= 50; ++i)
@@ -1081,10 +1146,38 @@ public void ProcessLimiters(ref Dictionary>> GetOptionsForPool(string pool, Dictionary>> defaultOptions)
@@ -1445,7 +1542,7 @@ public Dictionary>>
options.Add(DataTableEnum.VBonus, minigameVbonuses);
break;
- case "Battle Portals":
+ case "Battlegates":
// Events
events = new List { "EVENT_REPORT_001a", "EVENT_REPORT_001b", "EVENT_REPORT_002a", "EVENT_REPORT_002b", "EVENT_REPORT_003a", "EVENT_REPORT_003b", "EVENT_REPORT_004a", "EVENT_REPORT_004b",
"EVENT_REPORT_005a", "EVENT_REPORT_005b", "EVENT_REPORT_006a", "EVENT_REPORT_006b", "EVENT_REPORT_007a", "EVENT_REPORT_007b", "EVENT_REPORT_008a", "EVENT_REPORT_008b",
@@ -1621,7 +1718,7 @@ public string GetPoolFromOption(DataTableEnum dataTableEnum, string subCategory)
case "EVENT_REPORT_013a":
case "EVENT_REPORT_013b":
case "EVENT_REPORT_014":
- poolName = "Battle Portals";
+ poolName = "Battlegates";
break;
case "EVENT_KEYBLADE_012":
case "EVENT_KEYBLADE_013":
@@ -2048,9 +2145,15 @@ public void SwapRandomOption(ref Dictionary>> randomizedOptions, Dictionary>> defaultOptions,
Dictionary randomizePools, Random random, bool canUseNone)
{
+ // Replace Abilities or VBonus rewards from problem chests
+ foreach (var pChest in this.ProblemChests)
+ {
+ var currentValue = randomizedOptions[pChest.Item2][pChest.Item1]["Treasure"];
+
+ if (currentValue.Contains("ETresAbilityKind::") || currentValue.Contains("ETresVictoryBonusKind::"))
+ {
+ var pChestOption = new Option { Category = pChest.Item2, SubCategory = pChest.Item1, Name = "Treasure", Value = currentValue };
+
+ this.SwapRandomOption(ref randomizedOptions, randomizePools, random, "Item", pChestOption, canUseNone);
+ }
+ }
+
// Account for early abilities for Critical Mode
foreach (var vbonus in this.VBonusCriticalAbilities)
{
@@ -2180,7 +2296,7 @@ public void CleanUpOptions(ref Dictionary>> randomizedOptions)
@@ -2923,7 +3039,7 @@ public Dictionary> GetAvailableOptions(Dictiona
availableOptions.Add(pool.Key, minigameOptions);
break;
- case "Battle Portals":
+ case "Battlegates":
var battlePortalOptions = new Dictionary
{
{ "Reports", true }, { "Rewards", true }
@@ -3170,7 +3286,7 @@ public Dictionary GetPools(Dictionary x.Key == "Sora" || x.Key == "Equipment Abilities" || x.Key == "Data Battle Rewards" || x.Key == "Moogle Workshop" ||
x.Key == "Fullcourse Abilities" || x.Key == "Lucky Emblems" || x.Key == "Flantastic Flans" ||
- x.Key == "Minigames" || x.Key == "Battle Portals" || x.Key == "Always On")
+ x.Key == "Minigames" || x.Key == "Battlegates" || x.Key == "Always On")
.ToDictionary(x => x.Key, y => y.Value);
}
else if (category == "Stats")
@@ -3198,7 +3314,7 @@ public Tuple GetLevels(string subCategory)
return subCategory switch
{
"2" => new Tuple("6", "6"),
- "4" => new Tuple("14", "16"),
+ "4" => new Tuple("16", "14"),
"6" => new Tuple("4", "12"),
"9" => new Tuple("30", "24"),
"12" => new Tuple("44", "18"),
@@ -3846,7 +3962,7 @@ public List GetAvailableMinigameVictoryBonuses(string currentSelection, r
#endregion Minigames
- #region Battle Portals
+ #region Battlegates
public List GetAvailableBattlePortalEvents(string currentSelection, ref Dictionary>> randomizedOptions)
{
@@ -3883,7 +3999,7 @@ public List GetAvailableBattlePortalEvents(string currentSelection, ref D
return events;
}
- #endregion Battle Portals
+ #endregion Battlegates
#region Always On
diff --git a/KH3Randomizer/Pages/Index.razor b/KH3Randomizer/Pages/Index.razor
index 6e3abf9..aa28453 100644
--- a/KH3Randomizer/Pages/Index.razor
+++ b/KH3Randomizer/Pages/Index.razor
@@ -77,22 +77,22 @@
{ "Kingdom of Corona", RandomizeOptionEnum.Randomize }, { "Monstropolis", RandomizeOptionEnum.Randomize }, { "100 Acre Wood", RandomizeOptionEnum.Replace },
{ "Arendelle", RandomizeOptionEnum.Randomize }, { "San Fransokyo", RandomizeOptionEnum.Randomize }, { "The Caribbean", RandomizeOptionEnum.Randomize },
{ "Keyblade Graveyard", RandomizeOptionEnum.Randomize }, { "Re+Mind", RandomizeOptionEnum.Randomize }, { "Dark World", RandomizeOptionEnum.Randomize },
- { "Unreality", RandomizeOptionEnum.Randomize },
+ { "Unreality", RandomizeOptionEnum.Replace },
// Miscellaneous Categories
{ "Sora", RandomizeOptionEnum.Randomize }, { "Equipment Abilities", RandomizeOptionEnum.Randomize }, { "Data Battle Rewards", RandomizeOptionEnum.Randomize },
{ "Moogle Workshop", RandomizeOptionEnum.Randomize }, { "Fullcourse Abilities", RandomizeOptionEnum.Vanilla }, { "Lucky Emblems", RandomizeOptionEnum.Randomize },
- { "Flantastic Flans", RandomizeOptionEnum.Replace }, { "Minigames", RandomizeOptionEnum.Replace }, { "Battle Portals", RandomizeOptionEnum.Randomize },
+ { "Flantastic Flans", RandomizeOptionEnum.Replace }, { "Minigames", RandomizeOptionEnum.Replace }, { "Battlegates", RandomizeOptionEnum.Replace },
// Stat Categories
{ "Base Sora Stats", RandomizeOptionEnum.Balanced }, { "Level Up Stats", RandomizeOptionEnum.Balanced }, { "Keyblade Enhance Stats", RandomizeOptionEnum.Boosted },
{ "Equipment Stats", RandomizeOptionEnum.Balanced }, { "Food Effect Stats", RandomizeOptionEnum.Balanced },
// Enemy Categories
- { "Enemies", RandomizeOptionEnum.Randomize }, { "Bosses", RandomizeOptionEnum.Randomize },
+ { "Enemies", RandomizeOptionEnum.Vanilla }, { "Bosses", RandomizeOptionEnum.Vanilla },
// Party Categories
- { "Party Members", RandomizeOptionEnum.Randomize },
+ { "Party Members", RandomizeOptionEnum.Vanilla },
// Always On - Proofs, Oathkeeper, Oblivion, Meow Wow, Gummiphone
{ "Always On", RandomizeOptionEnum.Replace }
@@ -103,9 +103,9 @@
private Dictionary exceptions = new Dictionary
{
{ "Can Be None", false },
- { "Default Abilities", false },
+ { "Default Base Abilities", false },
{ "Default Critical Abilities", true },
- { "Early Critical Abilities", false },
+ { "Default Bonus Critical Abilities", false },
{ "Extra Movement", true },
{ "Safe Magic Locations", true },
@@ -118,9 +118,9 @@
{ "Allow All Stats", false },
{ "Allow Negative Stats", false },
- { "Default Data Battles", true },
- { "Default End Game Battles", true },
- { "Default Yozora Battle", true },
+ { "Default Data Battles", false },
+ { "Default End Game Battles", false },
+ { "Default Yozora Battle", false },
{ "Default Donald & Goofy", false },
{ "Enemy Chaos", false },
{ "Party Chaos", false }
@@ -161,10 +161,10 @@
},
{ "Events", new Dictionary {
{ "Frozen Chase Skip", true }, { "Faster Crab Collection", true }, { "Big Hero Rescue Skip", false },
- { "Faster Sora Collection", true }, { "Union χ Skip", false }, { "Guardians of Light Skip", true } }
+ { "Faster Sora Collection", true }, { "Union χ Skip", false }, { "Guardians of Light Skip", false } }
},
{ "Items", new Dictionary {
- { "All Maps Unlocked", false }, { "Easily Upgraded Keyblades", false }, { "Max Level Ship", true } }
+ { "All Maps Unlocked", true }, { "Easily Upgraded Keyblades", false }, { "Max Level Ship", true } }
}
};
diff --git a/KH3Randomizer/Pages/SpoilerLog.razor b/KH3Randomizer/Pages/SpoilerLog.razor
index 54d690f..975d34c 100644
--- a/KH3Randomizer/Pages/SpoilerLog.razor
+++ b/KH3Randomizer/Pages/SpoilerLog.razor
@@ -92,7 +92,7 @@
// Miscellaneous Categories
{ "Sora", RandomizeOptionEnum.Randomize }, { "Equipment Abilities", RandomizeOptionEnum.Randomize }, { "Data Battle Rewards", RandomizeOptionEnum.Randomize },
{ "Moogle Workshop", RandomizeOptionEnum.Randomize }, { "Fullcourse Abilities", RandomizeOptionEnum.Vanilla }, { "Lucky Emblems", RandomizeOptionEnum.Randomize },
- { "Flantastic Flans", RandomizeOptionEnum.Replace }, { "Minigames", RandomizeOptionEnum.Replace }, { "Battle Portals", RandomizeOptionEnum.Randomize },
+ { "Flantastic Flans", RandomizeOptionEnum.Replace }, { "Minigames", RandomizeOptionEnum.Replace }, { "Battlegates", RandomizeOptionEnum.Randomize },
// Stat Categories
{ "Base Sora Stats", RandomizeOptionEnum.Balanced }, { "Level Up Stats", RandomizeOptionEnum.Balanced }, { "Keyblade Enhance Stats", RandomizeOptionEnum.Boosted },
@@ -113,9 +113,9 @@
private Dictionary exceptions = new Dictionary
{
{ "Can Be None", false },
- { "Default Abilities", false },
+ { "Default Base Abilities", false },
{ "Default Critical Abilities", true },
- { "Early Critical Abilities", false },
+ { "Default Bonus Critical Abilities", false },
{ "Extra Movement", true },
{ "Safe Magic Locations", true },