373 lines
9.4 KiB
Python
373 lines
9.4 KiB
Python
from BaseClasses import Location
|
|
import typing
|
|
|
|
|
|
class AdvData(typing.NamedTuple):
|
|
id: typing.Optional[int]
|
|
region: str
|
|
|
|
|
|
class UndertaleAdvancement(Location):
|
|
game: str = "Undertale"
|
|
|
|
|
|
advancement_table = {
|
|
"Snowman": AdvData(79100, "Snowdin Forest"),
|
|
"Snowman 2": AdvData(79101, "Snowdin Forest"),
|
|
"Snowman 3": AdvData(79102, "Snowdin Forest"),
|
|
"Nicecream Snowdin": AdvData(79001, "Snowdin Forest"),
|
|
"Nicecream Waterfall": AdvData(79002, "Waterfall"),
|
|
"Nicecream Punch Card": AdvData(79003, "Waterfall"),
|
|
"Quiche Bench": AdvData(79004, "Waterfall"),
|
|
"Tutu Hidden": AdvData(79005, "Waterfall"),
|
|
"Card Reward": AdvData(79006, "Waterfall"),
|
|
"Grass Shoes": AdvData(79007, "Waterfall"),
|
|
"Noodles Fridge": AdvData(79008, "Hotland"),
|
|
"Pan Hidden": AdvData(79009, "Hotland"),
|
|
"Apron Hidden": AdvData(79010, "Hotland"),
|
|
"Trash Burger": AdvData(79011, "Core"),
|
|
"Present Knife": AdvData(79012, "New Home"),
|
|
"Present Locket": AdvData(79013, "New Home"),
|
|
"Candy 1": AdvData(79014, "Ruins"),
|
|
"Candy 2": AdvData(79015, "Ruins"),
|
|
"Candy 3": AdvData(79016, "Ruins"),
|
|
"Candy 4": AdvData(79017, "Ruins"),
|
|
"Donut Sale": AdvData(79018, "Ruins"),
|
|
"Cider Sale": AdvData(79019, "Ruins"),
|
|
"Ribbon Cracks": AdvData(79020, "Ruins"),
|
|
"Toy Knife Edge": AdvData(79021, "Ruins"),
|
|
"B.Scotch Pie Given": AdvData(79022, "Ruins"),
|
|
"Astro 1": AdvData(79023, "Waterfall"),
|
|
"Astro 2": AdvData(79024, "Waterfall"),
|
|
"Dog Sale 1": AdvData(79026, "Hotland"),
|
|
"Cat Sale": AdvData(79027, "Hotland"),
|
|
"Dog Sale 2": AdvData(79028, "Hotland"),
|
|
"Dog Sale 3": AdvData(79029, "Hotland"),
|
|
"Dog Sale 4": AdvData(79030, "Hotland"),
|
|
"Chisps Machine": AdvData(79031, "True Lab"),
|
|
"Hush Trade": AdvData(79032, "Hotland"),
|
|
"Letter Quest": AdvData(79033, "Snowdin Town"),
|
|
"Bunny 1": AdvData(79034, "Snowdin Town"),
|
|
"Bunny 2": AdvData(79035, "Snowdin Town"),
|
|
"Bunny 3": AdvData(79036, "Snowdin Town"),
|
|
"Bunny 4": AdvData(79037, "Snowdin Town"),
|
|
"Gerson 1": AdvData(79038, "Waterfall"),
|
|
"Gerson 2": AdvData(79039, "Waterfall"),
|
|
"Gerson 3": AdvData(79040, "Waterfall"),
|
|
"Gerson 4": AdvData(79041, "Waterfall"),
|
|
"Bratty Catty 1": AdvData(79042, "Hotland"),
|
|
"Bratty Catty 2": AdvData(79043, "Hotland"),
|
|
"Bratty Catty 3": AdvData(79044, "Hotland"),
|
|
"Bratty Catty 4": AdvData(79045, "Hotland"),
|
|
"Burgerpants 1": AdvData(79046, "Hotland"),
|
|
"Burgerpants 2": AdvData(79047, "Hotland"),
|
|
"Burgerpants 3": AdvData(79048, "Hotland"),
|
|
"Burgerpants 4": AdvData(79049, "Hotland"),
|
|
"TemmieShop 1": AdvData(79050, "Waterfall"),
|
|
"TemmieShop 2": AdvData(79051, "Waterfall"),
|
|
"TemmieShop 3": AdvData(79052, "Waterfall"),
|
|
"TemmieShop 4": AdvData(79053, "Waterfall"),
|
|
"Papyrus Plot": AdvData(79056, "Snowdin Town"),
|
|
"Undyne Plot": AdvData(79057, "Waterfall"),
|
|
"Mettaton Plot": AdvData(79062, "Core"),
|
|
"True Lab Plot": AdvData(79063, "Hotland"),
|
|
"Left New Home Key": AdvData(79064, "New Home"),
|
|
"Right New Home Key": AdvData(79065, "New Home"),
|
|
"LOVE 2": AdvData(79902, "???"),
|
|
"LOVE 3": AdvData(79903, "???"),
|
|
"LOVE 4": AdvData(79904, "???"),
|
|
"LOVE 5": AdvData(79905, "???"),
|
|
"LOVE 6": AdvData(79906, "???"),
|
|
"LOVE 7": AdvData(79907, "???"),
|
|
"LOVE 8": AdvData(79908, "???"),
|
|
"LOVE 9": AdvData(79909, "???"),
|
|
"LOVE 10": AdvData(79910, "???"),
|
|
"LOVE 11": AdvData(79911, "???"),
|
|
"LOVE 12": AdvData(79912, "???"),
|
|
"LOVE 13": AdvData(79913, "???"),
|
|
"LOVE 14": AdvData(79914, "???"),
|
|
"LOVE 15": AdvData(79915, "???"),
|
|
"LOVE 16": AdvData(79916, "???"),
|
|
"LOVE 17": AdvData(79917, "???"),
|
|
"LOVE 18": AdvData(79918, "???"),
|
|
"LOVE 19": AdvData(79919, "???"),
|
|
"LOVE 20": AdvData(79920, "???"),
|
|
"ATK 2": AdvData(79800, "???"),
|
|
"ATK 3": AdvData(79801, "???"),
|
|
"ATK 4": AdvData(79802, "???"),
|
|
"ATK 5": AdvData(79803, "???"),
|
|
"ATK 6": AdvData(79804, "???"),
|
|
"ATK 7": AdvData(79805, "???"),
|
|
"ATK 8": AdvData(79806, "???"),
|
|
"ATK 9": AdvData(79807, "???"),
|
|
"ATK 10": AdvData(79808, "???"),
|
|
"ATK 11": AdvData(79809, "???"),
|
|
"ATK 12": AdvData(79810, "???"),
|
|
"ATK 13": AdvData(79811, "???"),
|
|
"ATK 14": AdvData(79812, "???"),
|
|
"ATK 15": AdvData(79813, "???"),
|
|
"ATK 16": AdvData(79814, "???"),
|
|
"ATK 17": AdvData(79815, "???"),
|
|
"ATK 18": AdvData(79816, "???"),
|
|
"ATK 19": AdvData(79817, "???"),
|
|
"ATK 20": AdvData(79818, "???"),
|
|
"DEF 5": AdvData(79700, "???"),
|
|
"DEF 9": AdvData(79701, "???"),
|
|
"DEF 13": AdvData(79702, "???"),
|
|
"DEF 17": AdvData(79703, "???"),
|
|
"HP 2": AdvData(79600, "???"),
|
|
"HP 3": AdvData(79601, "???"),
|
|
"HP 4": AdvData(79602, "???"),
|
|
"HP 5": AdvData(79603, "???"),
|
|
"HP 6": AdvData(79604, "???"),
|
|
"HP 7": AdvData(79605, "???"),
|
|
"HP 8": AdvData(79606, "???"),
|
|
"HP 9": AdvData(79607, "???"),
|
|
"HP 10": AdvData(79608, "???"),
|
|
"HP 11": AdvData(79609, "???"),
|
|
"HP 12": AdvData(79610, "???"),
|
|
"HP 13": AdvData(79611, "???"),
|
|
"HP 14": AdvData(79612, "???"),
|
|
"HP 15": AdvData(79613, "???"),
|
|
"HP 16": AdvData(79614, "???"),
|
|
"HP 17": AdvData(79615, "???"),
|
|
"HP 18": AdvData(79616, "???"),
|
|
"HP 19": AdvData(79617, "???"),
|
|
"HP 20": AdvData(79618, "???"),
|
|
"Undyne Date": AdvData(None, "Undyne\"s Home"),
|
|
"Alphys Date": AdvData(None, "Hotland"),
|
|
"Papyrus Date": AdvData(None, "Papyrus\" Home"),
|
|
}
|
|
|
|
exclusion_table = {
|
|
"pacifist": {
|
|
"LOVE 2",
|
|
"LOVE 3",
|
|
"LOVE 4",
|
|
"LOVE 5",
|
|
"LOVE 6",
|
|
"LOVE 7",
|
|
"LOVE 8",
|
|
"LOVE 9",
|
|
"LOVE 10",
|
|
"LOVE 11",
|
|
"LOVE 12",
|
|
"LOVE 13",
|
|
"LOVE 14",
|
|
"LOVE 15",
|
|
"LOVE 16",
|
|
"LOVE 17",
|
|
"LOVE 18",
|
|
"LOVE 19",
|
|
"LOVE 20",
|
|
"ATK 2",
|
|
"ATK 3",
|
|
"ATK 4",
|
|
"ATK 5",
|
|
"ATK 6",
|
|
"ATK 7",
|
|
"ATK 8",
|
|
"ATK 9",
|
|
"ATK 10",
|
|
"ATK 11",
|
|
"ATK 12",
|
|
"ATK 13",
|
|
"ATK 14",
|
|
"ATK 15",
|
|
"ATK 16",
|
|
"ATK 17",
|
|
"ATK 18",
|
|
"ATK 19",
|
|
"ATK 20",
|
|
"DEF 5",
|
|
"DEF 9",
|
|
"DEF 13",
|
|
"DEF 17",
|
|
"HP 2",
|
|
"HP 3",
|
|
"HP 4",
|
|
"HP 5",
|
|
"HP 6",
|
|
"HP 7",
|
|
"HP 8",
|
|
"HP 9",
|
|
"HP 10",
|
|
"HP 11",
|
|
"HP 12",
|
|
"HP 13",
|
|
"HP 14",
|
|
"HP 15",
|
|
"HP 16",
|
|
"HP 17",
|
|
"HP 18",
|
|
"HP 19",
|
|
"HP 20",
|
|
"Snowman 2",
|
|
"Snowman 3",
|
|
},
|
|
"neutral": {
|
|
"Letter Quest",
|
|
"Dog Sale 1",
|
|
"Cat Sale",
|
|
"Dog Sale 2",
|
|
"Dog Sale 3",
|
|
"Dog Sale 4",
|
|
"Chisps Machine",
|
|
"Hush Trade",
|
|
"LOVE 2",
|
|
"LOVE 3",
|
|
"LOVE 4",
|
|
"LOVE 5",
|
|
"LOVE 6",
|
|
"LOVE 7",
|
|
"LOVE 8",
|
|
"LOVE 9",
|
|
"LOVE 10",
|
|
"LOVE 11",
|
|
"LOVE 12",
|
|
"LOVE 13",
|
|
"LOVE 14",
|
|
"LOVE 15",
|
|
"LOVE 16",
|
|
"LOVE 17",
|
|
"LOVE 18",
|
|
"LOVE 19",
|
|
"LOVE 20",
|
|
"Papyrus Plot",
|
|
"Undyne Plot",
|
|
"True Lab Plot",
|
|
"ATK 2",
|
|
"ATK 3",
|
|
"ATK 4",
|
|
"ATK 5",
|
|
"ATK 6",
|
|
"ATK 7",
|
|
"ATK 8",
|
|
"ATK 9",
|
|
"ATK 10",
|
|
"ATK 11",
|
|
"ATK 12",
|
|
"ATK 13",
|
|
"ATK 14",
|
|
"ATK 15",
|
|
"ATK 16",
|
|
"ATK 17",
|
|
"ATK 18",
|
|
"ATK 19",
|
|
"ATK 20",
|
|
"DEF 5",
|
|
"DEF 9",
|
|
"DEF 13",
|
|
"DEF 17",
|
|
"HP 2",
|
|
"HP 3",
|
|
"HP 4",
|
|
"HP 5",
|
|
"HP 6",
|
|
"HP 7",
|
|
"HP 8",
|
|
"HP 9",
|
|
"HP 10",
|
|
"HP 11",
|
|
"HP 12",
|
|
"HP 13",
|
|
"HP 14",
|
|
"HP 15",
|
|
"HP 16",
|
|
"HP 17",
|
|
"HP 18",
|
|
"HP 19",
|
|
"HP 20",
|
|
"Snowman 2",
|
|
"Snowman 3",
|
|
},
|
|
"genocide": {
|
|
"Letter Quest",
|
|
"Dog Sale 1",
|
|
"Cat Sale",
|
|
"Dog Sale 2",
|
|
"Dog Sale 3",
|
|
"Dog Sale 4",
|
|
"Chisps Machine",
|
|
"Nicecream Snowdin",
|
|
"Nicecream Waterfall",
|
|
"Nicecream Punch Card",
|
|
"Card Reward",
|
|
"Apron Hidden",
|
|
"Hush Trade",
|
|
"Papyrus Plot",
|
|
"Undyne Plot",
|
|
"True Lab Plot",
|
|
},
|
|
"NoLove": {
|
|
"LOVE 2",
|
|
"LOVE 3",
|
|
"LOVE 4",
|
|
"LOVE 5",
|
|
"LOVE 6",
|
|
"LOVE 7",
|
|
"LOVE 8",
|
|
"LOVE 9",
|
|
"LOVE 10",
|
|
"LOVE 11",
|
|
"LOVE 12",
|
|
"LOVE 13",
|
|
"LOVE 14",
|
|
"LOVE 15",
|
|
"LOVE 16",
|
|
"LOVE 17",
|
|
"LOVE 18",
|
|
"LOVE 19",
|
|
"LOVE 20",
|
|
},
|
|
"NoStats": {
|
|
"ATK 2",
|
|
"ATK 3",
|
|
"ATK 4",
|
|
"ATK 5",
|
|
"ATK 6",
|
|
"ATK 7",
|
|
"ATK 8",
|
|
"ATK 9",
|
|
"ATK 10",
|
|
"ATK 11",
|
|
"ATK 12",
|
|
"ATK 13",
|
|
"ATK 14",
|
|
"ATK 15",
|
|
"ATK 16",
|
|
"ATK 17",
|
|
"ATK 18",
|
|
"ATK 19",
|
|
"ATK 20",
|
|
"DEF 5",
|
|
"DEF 9",
|
|
"DEF 13",
|
|
"DEF 17",
|
|
"HP 2",
|
|
"HP 3",
|
|
"HP 4",
|
|
"HP 5",
|
|
"HP 6",
|
|
"HP 7",
|
|
"HP 8",
|
|
"HP 9",
|
|
"HP 10",
|
|
"HP 11",
|
|
"HP 12",
|
|
"HP 13",
|
|
"HP 14",
|
|
"HP 15",
|
|
"HP 16",
|
|
"HP 17",
|
|
"HP 18",
|
|
"HP 19",
|
|
"HP 20",
|
|
},
|
|
"all_routes": {
|
|
}
|
|
}
|
|
|
|
events_table = {
|
|
}
|