Archipelago/worlds/osrs/Items.py

86 lines
2.3 KiB
Python

import typing
from BaseClasses import Item, ItemClassification
from .Names import ItemNames
class ItemRow(typing.NamedTuple):
name: str
amount: int
progression: ItemClassification
class OSRSItem(Item):
game: str = "Old School Runescape"
QP_Items: typing.List[str] = [
ItemNames.QP_Cooks_Assistant,
ItemNames.QP_Demon_Slayer,
ItemNames.QP_Restless_Ghost,
ItemNames.QP_Romeo_Juliet,
ItemNames.QP_Sheep_Shearer,
ItemNames.QP_Shield_of_Arrav,
ItemNames.QP_Ernest_the_Chicken,
ItemNames.QP_Vampyre_Slayer,
ItemNames.QP_Imp_Catcher,
ItemNames.QP_Prince_Ali_Rescue,
ItemNames.QP_Dorics_Quest,
ItemNames.QP_Black_Knights_Fortress,
ItemNames.QP_Witchs_Potion,
ItemNames.QP_Knights_Sword,
ItemNames.QP_Goblin_Diplomacy,
ItemNames.QP_Pirates_Treasure,
ItemNames.QP_Rune_Mysteries,
ItemNames.QP_Misthalin_Mystery,
ItemNames.QP_Corsair_Curse,
ItemNames.QP_X_Marks_the_Spot,
ItemNames.QP_Below_Ice_Mountain
]
starting_area_dict: typing.Dict[int, str] = {
0: ItemNames.Lumbridge,
1: ItemNames.Al_Kharid,
2: ItemNames.Central_Varrock,
3: ItemNames.West_Varrock,
4: ItemNames.Edgeville,
5: ItemNames.Falador,
6: ItemNames.Draynor_Village,
7: ItemNames.Wilderness,
}
chunksanity_starting_chunks: typing.List[str] = [
ItemNames.Lumbridge,
ItemNames.Lumbridge_Swamp,
ItemNames.Lumbridge_Farms,
ItemNames.HAM_Hideout,
ItemNames.Draynor_Village,
ItemNames.Draynor_Manor,
ItemNames.Wizards_Tower,
ItemNames.Al_Kharid,
ItemNames.Citharede_Abbey,
ItemNames.South_Of_Varrock,
ItemNames.Central_Varrock,
ItemNames.Varrock_Palace,
ItemNames.East_Of_Varrock,
ItemNames.West_Varrock,
ItemNames.Edgeville,
ItemNames.Barbarian_Village,
ItemNames.Monastery,
ItemNames.Ice_Mountain,
ItemNames.Dwarven_Mines,
ItemNames.Falador,
ItemNames.Falador_Farm,
ItemNames.Crafting_Guild,
ItemNames.Rimmington,
ItemNames.Port_Sarim,
ItemNames.Mudskipper_Point,
ItemNames.Wilderness
]
# Some starting areas contain multiple regions, so if that area is rolled for Chunksanity, we need to map it to one
chunksanity_special_region_names: typing.Dict[str, str] = {
ItemNames.Lumbridge_Farms: 'Lumbridge Farms East',
ItemNames.Crafting_Guild: 'Crafting Guild Outskirts',
}