347 lines
4.8 KiB
Python
347 lines
4.8 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",
|
|
]
|
|
|
|
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
|
|
]
|