Archipelago/worlds/sa2b/AestheticData.py

347 lines
4.8 KiB
Python
Raw Normal View History

SA2B: v2.3 - The Chao Update (#2277) Changelog: Features: - New goal - Chaos Chao - Raise a Chaos Chao to win! - New optional Location Checks - Chao Animal Parts - Each body part from each type of animal is a location - Chao Stats - 0-99 levels of each of the 7 Chao stats can be locations - The frequency of Chao Stat locations can be set (every level, every 2nd level, etc) - Kindergartensanity - Classroom lessons are locations - Either all lessons or any one of each category can be set as locations - Shopsanity - A specified number of locations can be placed in the Chao Black Market - These locations are unlocked by acquiring `Chao Coin`s - Ring costs for these items can be adjusted - Chao Karate can now be set to one location per fight, instead of one per tournament - Items - If any Chao locations are active, the following will be in the item pool: - Chao Eggs - Garden Seeds - Garden Fruit - Chao Hats - Chaos Drives - The starting eggs in the garden can be a random color - Chao World entrances can be shuffled - Chao are given default names - New Traps - Reverse Trap Quality of Life: - Chao Save Data is now separate per-slot in addition to per-seed - This allows a single player to have multiple slots in the same seed, each having separate Chao progress - Chao Race/Karate progress is now displayed on Stage Select (when hovering over Chao World) - All Chao can now enter the Hero and Dark races - Chao Karate difficulty can be set separately from Chao Race difficulty - Chao Aging can be sped up at will, up to 15× - New mod `config` option to fine-tune Chao Stat multiplication - Note: This does not mix well with the Mod Manager "`Chao Stat Multiplier`" code - Pong Traps can now activate in Chao World - Maximum range for possible number of Emblems is now 1000 - General APWorld cleanup and optimization - Option access has moved to the new options system - An item group now exists for trap items Bug Fixes: - Dry Lagoon now has all 11 Animals - Eternal Engine - 2 (Standard and Hard Logic) now requires only `Tails - Booster` - Lost Colony - 2 (Hard Logic) now requires no upgrades - Lost Colony - Animal 9 (Hard Logic) now requires either `Eggman - Jet Engine` or `Eggman - Large Cannon`
2023-11-16 07:08:38 +00:00
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",
SA2B: v2.3 - The Chao Update (#2277) Changelog: Features: - New goal - Chaos Chao - Raise a Chaos Chao to win! - New optional Location Checks - Chao Animal Parts - Each body part from each type of animal is a location - Chao Stats - 0-99 levels of each of the 7 Chao stats can be locations - The frequency of Chao Stat locations can be set (every level, every 2nd level, etc) - Kindergartensanity - Classroom lessons are locations - Either all lessons or any one of each category can be set as locations - Shopsanity - A specified number of locations can be placed in the Chao Black Market - These locations are unlocked by acquiring `Chao Coin`s - Ring costs for these items can be adjusted - Chao Karate can now be set to one location per fight, instead of one per tournament - Items - If any Chao locations are active, the following will be in the item pool: - Chao Eggs - Garden Seeds - Garden Fruit - Chao Hats - Chaos Drives - The starting eggs in the garden can be a random color - Chao World entrances can be shuffled - Chao are given default names - New Traps - Reverse Trap Quality of Life: - Chao Save Data is now separate per-slot in addition to per-seed - This allows a single player to have multiple slots in the same seed, each having separate Chao progress - Chao Race/Karate progress is now displayed on Stage Select (when hovering over Chao World) - All Chao can now enter the Hero and Dark races - Chao Karate difficulty can be set separately from Chao Race difficulty - Chao Aging can be sped up at will, up to 15× - New mod `config` option to fine-tune Chao Stat multiplication - Note: This does not mix well with the Mod Manager "`Chao Stat Multiplier`" code - Pong Traps can now activate in Chao World - Maximum range for possible number of Emblems is now 1000 - General APWorld cleanup and optimization - Option access has moved to the new options system - An item group now exists for trap items Bug Fixes: - Dry Lagoon now has all 11 Animals - Eternal Engine - 2 (Standard and Hard Logic) now requires only `Tails - Booster` - Lost Colony - 2 (Hard Logic) now requires no upgrades - Lost Colony - Animal 9 (Hard Logic) now requires either `Eggman - Jet Engine` or `Eggman - Large Cannon`
2023-11-16 07:08:38 +00:00
]
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",
]
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
]