Files
Grinch-AP/worlds/sa2b/AestheticData.py
PoryGone 294a67a4b4 SA2B: v2.4 - Minigame Madness (#4663)
Changelog:

Features:
- New Goal
  - Minigame Madness
    - Win a certain number of each type of Minigame Trap, then defeat the Finalhazard to win!
	- How many of each Minigame are required can be set by an Option
	- When the required amount of a Minigame has been received, that Minigame can be replayed in the Chao World Lobby
- New optional Location Checks
  - Bigsanity
    - Go fishing with Big in each stage for a Location Check
  - Itemboxsanity
    - Either Extra Life Boxes or All Item Boxes
- New Items
  - New Traps
    - Literature Trap
	- Controller Drift Trap
	- Poison Trap
	- Bee Trap
  - New Minigame Traps
    - Breakout Trap
	- Fishing Trap
	- Trivia Trap
	- Pokemon Trivia Trap
	- Pokemon Count Trap
	- Number Sequence Trap
	- Light Up Path Trap
	- Pinball Trap
	- Math Quiz Trap
	- Snake Trap
	- Input Sequence Trap
- Trap Link
  - When you receive a trap, you send a copy of it to every other player with Trap Link enabled
- Boss Gate Plando
- Expert Logic Difficulty
	- Use at your own risk. This difficulty requires complete mastery of SA2.
- Missions can now be enabled and disabled per-character, instead of just per-style
- Minigame Difficulty can now be set to "Chaos", which selects a new difficulty randomly per-trap received

Quality of Life:
- Gate Stages and Mission Orders are now displayed in the spoiler log
- Additional play stats are saved and displayed with the randomizer credits
- Stage Locations progress UI now displays in multiple pages when Itemboxsanity is enabled
- Current stage mission order and progress are now shown when paused in-level
- Chaos Emeralds are now shown when paused in-level
- Location Name Groups were created
- Moved SA2B to the new Options system
- Option Presets were created
- Error Messages are more obvious

Bug Fixes:
- Added missing `Dry Lagoon - 12 Animals` location
- Flying Dog boss should no longer crash when you have done at least 3 Intermediate Kart Races
- Invincibility can no longer be received in the King Boom Boo fight, preventing a crash
- Chaos Emeralds should no longer disproportionately end up in Cannon's Core or the final Level Gate
- Going into submenus from the pause menu should no longer reset traps
- `Sonic - Magic Gloves` are now plural
- Junk items will no longer cause a crash when in a falling state
- Chao Garden:
	- Prevent races from occasionally becoming uncompletable when using the "Prize Only" option
	- Properly allow Hero Chao to participate in Dark Races
	- Don't allow the Chao Garden to send locations when connected to an invalid server
	- Prevent the Chao Garden from resetting your life count
	- Fix Chao World Entrance Shuffle causing inaccessible Neutral Garden
	- Fix pressing the 'B' button to take you to the proper location in Chao World Entrance Shuffle
	- Prevent Chao Karate progress icon overflow
	- Prevent changing Chao Timescale while paused or while a Minigame is active
- Logic Fixes:
	- `Mission Street - Chao Key 1` (Hard Logic) now requires no upgrades
	- `Mission Street - Chao Key 2` (Hard Logic) now requires no upgrades
	- `Crazy Gadget - Hidden 1` (Standard Logic) now requires `Sonic - Bounce Bracelet` instead of `Sonic - Light Shoes`
	- `Lost Colony - Hidden 1` (Standard Logic) now requires `Eggman - Jet Engine`
	- `Mad Space - Gold Beetle` (Standard Logic) now only requires `Rouge - Iron Boots`
	- `Cosmic Wall - Gold Beetle` (Standard and Hard Logic) now only requires `Eggman - Jet Engine`
2025-03-22 13:00:07 +01:00

396 lines
5.4 KiB
Python

chao_name_conversion = {
"!": 0x01,
"!": 0x02,
"#": 0x03,
"$": 0x04,
"%": 0x05,
"&": 0x06,
"\\": 0x07,
"(": 0x08,
")": 0x09,
"*": 0x0A,
"+": 0x0B,
",": 0x0C,
"-": 0x0D,
".": 0x0E,
"/": 0x0F,
"0": 0x10,
"1": 0x11,
"2": 0x12,
"3": 0x13,
"4": 0x14,
"5": 0x15,
"6": 0x16,
"7": 0x17,
"8": 0x18,
"9": 0x19,
":": 0x1A,
";": 0x1B,
"<": 0x1C,
"=": 0x1D,
">": 0x1E,
"?": 0x1F,
"@": 0x20,
"A": 0x21,
"B": 0x22,
"C": 0x23,
"D": 0x24,
"E": 0x25,
"F": 0x26,
"G": 0x27,
"H": 0x28,
"I": 0x29,
"J": 0x2A,
"K": 0x2B,
"L": 0x2C,
"M": 0x2D,
"N": 0x2E,
"O": 0x2F,
"P": 0x30,
"Q": 0x31,
"R": 0x32,
"S": 0x33,
"T": 0x34,
"U": 0x35,
"V": 0x36,
"W": 0x37,
"X": 0x38,
"Y": 0x39,
"Z": 0x3A,
"[": 0x3B,
"¥": 0x3C,
"]": 0x3D,
"^": 0x3E,
"_": 0x3F,
"`": 0x40,
"a": 0x41,
"b": 0x42,
"c": 0x43,
"d": 0x44,
"e": 0x45,
"f": 0x46,
"g": 0x47,
"h": 0x48,
"i": 0x49,
"j": 0x4A,
"k": 0x4B,
"l": 0x4C,
"m": 0x4D,
"n": 0x4E,
"o": 0x4F,
"p": 0x50,
"q": 0x51,
"r": 0x52,
"s": 0x53,
"t": 0x54,
"u": 0x55,
"v": 0x56,
"w": 0x57,
"x": 0x58,
"y": 0x59,
"z": 0x5A,
"{": 0x5B,
"|": 0x5C,
"}": 0x5D,
"~": 0x5E,
" ": 0x5F,
}
sample_chao_names = [
"Aginah",
"Biter",
"Steve",
"Ryley",
"Watcher",
"Acrid",
"Sheik",
"Lunais",
"Samus",
"The Kid",
"Jack",
"Sir Lee",
"Viridian",
"Rouhi",
"Toad",
"Merit",
"Ridley",
"Hornet",
"Carl",
"Raynor",
"Dixie",
"Wolnir",
"Mario",
"Gary",
"Wayne",
"Kevin",
"J.J.",
"Maxim",
"Redento",
"Caesar",
"Abigail",
"Link",
"Ninja",
"Roxas",
"Marin",
"Yorgle",
"DLC",
"Mina",
"Sans",
"Lan",
"Rin",
"Doomguy",
"Guide",
"May",
"Hubert",
"Corvus",
"Nigel",
"Benjamin",
"Gooey",
"Maddy",
"AFGNCAAP",
"Reinhardt",
"Claire",
"Yoshi",
"Peasley",
"Faux",
"Naija",
"Kaiba",
"Hat Kid",
"TzTokJad",
"Sora",
"WoodMan",
"Yachty",
"Grieve",
"Portia",
"Graves",
"Kaycee",
]
totally_real_item_names = [
"Mallet",
"Lava Rod",
"Master Knife",
"Slippers",
"Spade",
"Progressive Car Upgrade",
"Bonus Token",
"Shortnail",
"Runmaster",
"Courage Form",
"Auto Courage",
"Donald Defender",
"Goofy Blizzard",
"Ultimate Weapon",
"Song of the Sky Whale",
"Gryphon Shoes",
"Wing Key",
"Strength Anklet",
"Hairclip",
"Key of Wisdom",
"Baking",
"Progressive Block Mining",
"Jar",
"Whistle of Space",
"Rito Tunic",
"Kitchen Sink",
"Rock Badge",
"Key Card",
"Pikachu",
"Eevee",
"HM02 Strength",
"Progressive Astromancers",
"Progressive Chefs",
"The Living Safe",
"Lady Quinn",
"Dio's Worst Enemy",
"Pink Chaos Emerald",
"Black Chaos Emerald",
"Tails - Large Cannon",
"Eggman - Bazooka",
"Eggman - Booster",
"Knuckles - Shades",
"Sonic - Magic Shoes",
"Shadow - Bounce Bracelet",
"Rouge - Air Necklace",
"Big Key (Eggman's Pyramid)",
"Sensor Bunker",
"Phantom",
"Soldier",
"Plasma Suit",
"Gravity Beam",
"Hi-Jump Ball",
"Cannon Unlock LLL",
"Feather Cap",
"Progressive Yoshi",
"Purple Switch Palace",
"Cape Feather",
"Cane of Bryan",
"Van Repair",
"Autumn",
"Galaxy Knife",
"Green Cabbage Seeds",
"Timespinner Cog 1",
"Ladder",
"Visible Dots",
"CooCoo",
"Blueberry",
"Ear of Luigi",
"Mega Nut",
"DUELIST ALLIANCE",
"DUEL OVERLOAD",
"POWER OF THE ELEMENTS",
"S:P Little Knight",
"Red-Eyes Dark Dragoon",
"Fire Hat",
"Area: Taverly",
"Area: Meiyerditch",
"Fire Cape",
"Donald Zeta Flare",
"Category One of a Kind",
"Category Fuller House",
"Passive Camoflage",
"Earth Card",
]
all_exits = [
0x00, # Lobby to Neutral
0x01, # Lobby to Hero
0x02, # Lobby to Dark
0x03, # Lobby to Kindergarten
0x04, # Neutral to Lobby
0x05, # Neutral to Cave
0x06, # Neutral to Transporter
0x07, # Hero to Lobby
0x08, # Hero to Transporter
0x09, # Dark to Lobby
0x0A, # Dark to Transporter
0x0B, # Cave to Neutral
0x0C, # Cave to Race
0x0D, # Cave to Karate
0x0E, # Race to Cave
0x0F, # Karate to Cave
0x10, # Transporter to Neutral
#0x11, # Transporter to Hero
#0x12, # Transporter to Dark
0x13, # Kindergarten to Lobby
]
all_destinations = [
0x07, # Lobby
0x07,
0x07,
0x07,
0x01, # Neutral
0x01,
0x01,
0x02, # Hero
0x02,
0x03, # Dark
0x03,
0x09, # Cave
0x09,
0x09,
0x05, # Chao Race
0x0A, # Chao Karate
0x0C, # Transporter
#0x0C,
#0x0C,
0x06, # Kindergarten
]
multi_rooms = [
0x07,
0x01,
0x02,
0x03,
0x09,
]
single_rooms = [
0x05,
0x0A,
0x0C,
0x06,
]
room_to_exits_map = {
0x07: [0x00, 0x01, 0x02, 0x03],
0x01: [0x04, 0x05, 0x06],
0x02: [0x07, 0x08],
0x03: [0x09, 0x0A],
0x09: [0x0B, 0x0C, 0x0D],
0x05: [0x0E],
0x0A: [0x0F],
0x0C: [0x10],#, 0x11, 0x12],
0x06: [0x13],
}
exit_to_room_map = {
0x00: 0x07, # Lobby to Neutral
0x01: 0x07, # Lobby to Hero
0x02: 0x07, # Lobby to Dark
0x03: 0x07, # Lobby to Kindergarten
0x04: 0x01, # Neutral to Lobby
0x05: 0x01, # Neutral to Cave
0x06: 0x01, # Neutral to Transporter
0x07: 0x02, # Hero to Lobby
0x08: 0x02, # Hero to Transporter
0x09: 0x03, # Dark to Lobby
0x0A: 0x03, # Dark to Transporter
0x0B: 0x09, # Cave to Neutral
0x0C: 0x09, # Cave to Race
0x0D: 0x09, # Cave to Karate
0x0E: 0x05, # Race to Cave
0x0F: 0x0A, # Karate to Cave
0x10: 0x0C, # Transporter to Neutral
#0x11: 0x0C, # Transporter to Hero
#0x12: 0x0C, # Transporter to Dark
0x13: 0x06, # Kindergarten to Lobby
}
valid_kindergarten_exits = [
0x04, # Neutral to Lobby
0x05, # Neutral to Cave
0x07, # Hero to Lobby
0x09, # Dark to Lobby
]