754 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			754 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | from BaseClasses import ItemClassification | ||
|  | from typing import TypedDict, Dict, List, Set | ||
|  | 
 | ||
|  | 
 | ||
|  | class ItemDict(TypedDict): | ||
|  |     name: str | ||
|  |     count: int | ||
|  |     classification: ItemClassification | ||
|  | 
 | ||
|  | base_id = 1909000 | ||
|  | 
 | ||
|  | item_table: List[ItemDict] = [ | ||
|  |     # Rosary Beads | ||
|  |     {'name': "Dove Skull", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Ember of the Holy Cremation", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Silver Grape", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Uvula of Proclamation", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Hollow Pearl", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Knot of Hair", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Painted Wood Bead", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Piece of a Golden Mask", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Moss Preserved in Glass", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Frozen Olive", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Quirce's Scorched Bead", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Wicker Knot", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Perpetva's Protection", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Thorned Symbol", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Piece of a Tombstone", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Sphere of the Sacred Smoke", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Bead of Red Wax", | ||
|  |         'count': 3, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Little Toe made of Limestone", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Big Toe made of Limestone", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Fourth Toe made of Limestone", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Bead of Blue Wax", | ||
|  |         'count': 3, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Pelican Effigy", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Drop of Coagulated Ink", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Amber Eye", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Muted Bell", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Consecrated Amethyst", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Embers of a Broken Star", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Scaly Coin", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Seashell of the Inverted Spiral", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Calcified Eye of Erudition", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Weight of True Guilt", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Reliquary of the Fervent Heart", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Reliquary of the Suffering Heart", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Reliquary of the Sorrowful Heart", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Token of Appreciation", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Cloistered Ruby", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Bead of Gold Thread", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Cloistered Sapphire", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Fire Enclosed in Enamel", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Light of the Lady of the Lamp", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Scale of Burnished Alabaster", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "The Young Mason's Wheel", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Crown of Gnawed Iron", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Crimson Heart of a Miura", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  | 
 | ||
|  |     # Prayers | ||
|  |     {'name': "Seguiriya to your Eyes like Stars", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Debla of the Lights", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Saeta Dolorosa", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Campanillero to the Sons of the Aurora", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Lorquiana", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Zarabanda of the Safe Haven", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Taranto to my Sister", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Solea of Excommunication", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Tiento to your Thorned Hairs", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Cante Jondo of the Three Sisters", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Verdiales of the Forsaken Hamlet", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Romance to the Crimson Mist", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Zambra to the Resplendent Crown", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Aubade of the Nameless Guardian", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Cantina of the Blue Rose", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Mirabras of the Return to Port", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Tirana of the Celestial Bastion", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  | 
 | ||
|  |     # Relics | ||
|  |     {'name': "Blood Perpetuated in Sand", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Incorrupt Hand of the Fraternal Master", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Nail Uprooted from Dirt", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Shroud of Dreamt Sins", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Linen of Golden Thread", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Silvered Lung of Dolphos", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Three Gnarled Tongues", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  | 
 | ||
|  |     # Mea Culpa Hearts | ||
|  |     {'name': "Smoking Heart of Incense", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Heart of the Virtuous Pain", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Heart of Saltpeter Blood", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Heart of Oils", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Heart of Cerulean Incense", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Heart of the Holy Purge", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Molten Heart of Boiling Blood", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Heart of the Single Tone", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Heart of the Unnamed Minstrel", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Brilliant Heart of Dawn", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Apodictic Heart of Mea Culpa", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  | 
 | ||
|  |     # Quest Items | ||
|  |     {'name': "Cord of the True Burying", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Mark of the First Refuge", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Mark of the Second Refuge", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Mark of the Third Refuge", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Tentudia's Carnal Remains", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Remains of Tentudia's Hair", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Tentudia's Skeletal Remains", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Melted Golden Coins", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Torn Bridal Ribbon", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Black Grieving Veil", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Egg of Deformity", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Hatched Egg of Deformity", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Bouquet of Rosemary", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Incense Garlic", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Thorn Upgrade", | ||
|  |         'count': 8, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Olive Seeds", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Holy Wound of Attrition", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Holy Wound of Contrition", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Holy Wound of Compunction", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Empty Bile Vessel", | ||
|  |         'count': 8, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Knot of Rosary Rope", | ||
|  |         'count': 6, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Golden Thimble Filled with Burning Oil", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Key to the Chamber of the Eldest Brother", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Empty Golden Thimble", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Deformed Mask of Orestes", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Mirrored Mask of Dolphos", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Embossed Mask of Crescente", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Dried Clove", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Sooty Garlic", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Bouquet of Thyme", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Linen Cloth", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Severed Hand", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Dried Flowers bathed in Tears", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Key of the Secular", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Key of the Scribe", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Key of the Inquisitor", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Key of the High Peaks", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Chalice of Inverted Verses", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Quicksilver", | ||
|  |         'count': 5, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Petrified Bell", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Verses Spun from Gold", | ||
|  |         'count': 4, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Severed Right Eye of the Traitor", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Broken Left Eye of the Traitor", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Incomplete Scapular", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Key Grown from Twisted Wood", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Holy Wound of Abnegation", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  | 
 | ||
|  |     # Skills | ||
|  |     {'name': "Combo Skill", | ||
|  |         'count': 3, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  |     {'name': "Charged Skill", | ||
|  |         'count': 3, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Ranged Skill", | ||
|  |         'count': 3, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Dive Skill", | ||
|  |         'count': 3, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Lunge Skill", | ||
|  |         'count': 3, | ||
|  |         'classification': ItemClassification.useful}, | ||
|  | 
 | ||
|  |     # Other | ||
|  |     {'name': "Parietal bone of Lasser, the Inquisitor", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Jaw of Ashgan, the Inquisitor", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Cervical vertebra of Zicher, the Brewmaster", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Clavicle of Dalhuisen, the Schoolchild", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Sternum of Vitas, the Performer", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Ribs of Sabnock, the Guardian", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Vertebra of John, the Gambler", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Scapula of Carlos, the Executioner", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Humerus of McMittens, the Nurse", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Ulna of Koke, the Troubadour", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Radius of Helzer, the Poet", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Frontal of Martinus, the Ropemaker", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Metacarpus of Hodges, the Blacksmith", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Phalanx of Arthur, the Sailor", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Phalanx of Miriam, the Counsellor", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Phalanx of Brannon, the Gravedigger", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Coxal of June, the Prostitute", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Sacrum of the Dark Warlock", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Coccyx of Daniel, the Possessed", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Femur of Karpow, the Bounty Hunter", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Kneecap of Sebastien, the Puppeteer", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Tibia of Alsahli, the Mystic", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Fibula of Rysp, the Ranger", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Temporal of Joel, the Thief", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Metatarsus of Rikusyo, the Traveller", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Phalanx of Zeth, the Prisoner", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Phalanx of William, the Sceptic", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Phalanx of Aralcarim, the Archivist", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Occipital of Tequila, the Metalsmith", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Maxilla of Tarradax, the Cleric", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Nasal bone of Charles, the Artist", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Hyoid bone of Senex, the Beggar", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Vertebra of Lindquist, the Forger", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Trapezium of Jeremiah, the Hangman", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Trapezoid of Yeager, the Jeweller", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Capitate of Barock, the Herald", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Hamate of Vukelich, the Copyist", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Pisiform of Hernandez, the Explorer", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Triquetral of Luca, the Tailor", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Lunate of Keiya, the Butcher", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Scaphoid of Fierce, the Leper", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Anklebone of Weston, the Pilgrim", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Calcaneum of Persian, the Bandit", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Navicular of Kahnnyhoo, the Murderer", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Child of Moonlight", | ||
|  |         'count': 38, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Life Upgrade", | ||
|  |         'count': 6, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Fervour Upgrade", | ||
|  |         'count': 6, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Mea Culpa Upgrade", | ||
|  |         'count': 7, | ||
|  |         'classification': ItemClassification.progression}, | ||
|  |     {'name': "Tears of Atonement (250)", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (300)", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (500)", | ||
|  |         'count': 3, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (625)", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (750)", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (1000)", | ||
|  |         'count': 4, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (1250)", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (1500)", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (1750)", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (2000)", | ||
|  |         'count': 2, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (2100)", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (2500)", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (2600)", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (3000)", | ||
|  |         'count': 2, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (4300)", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (5000)", | ||
|  |         'count': 4, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (5500)", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (9000)", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (10000)", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (11250)", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (18000)", | ||
|  |         'count': 5, | ||
|  |         'classification': ItemClassification.filler}, | ||
|  |     {'name': "Tears of Atonement (30000)", | ||
|  |         'count': 1, | ||
|  |         'classification': ItemClassification.filler} | ||
|  | ] | ||
|  | 
 | ||
|  | group_table: Dict[str, Set[str]] = { | ||
|  |     "wounds"  : ["Holy Wound of Attrition", | ||
|  |                  "Holy Wound of Contrition", | ||
|  |                  "Holy Wound of Compunction"], | ||
|  | 
 | ||
|  |     "masks"   : ["Deformed Mask of Orestes", | ||
|  |                  "Mirrored Mask of Dolphos", | ||
|  |                  "Embossed Mask of Crescente"], | ||
|  | 
 | ||
|  |     "tirso"   : ["Bouquet of Rosemary", | ||
|  |                  "Incense Garlic", | ||
|  |                  "Olive Seeds", | ||
|  |                  "Dried Clove", | ||
|  |                  "Sooty Garlic", | ||
|  |                  "Bouquet of Thyme"], | ||
|  | 
 | ||
|  |     "tentudia": ["Tentudia's Carnal Remains", | ||
|  |                  "Remains of Tentudia's Hair", | ||
|  |                  "Tentudia's Skeletal Remains"], | ||
|  | 
 | ||
|  |     "egg"     : ["Melted Golden Coins", | ||
|  |                  "Torn Bridal Ribbon", | ||
|  |                  "Black Grieving Veil"], | ||
|  | 
 | ||
|  |     "bones"   : ["Parietal bone of Lasser, the Inquisitor", | ||
|  |                  "Jaw of Ashgan, the Inquisitor", | ||
|  |                  "Cervical vertebra of Zicher, the Brewmaster", | ||
|  |                  "Clavicle of Dalhuisen, the Schoolchild", | ||
|  |                  "Sternum of Vitas, the Performer", | ||
|  |                  "Ribs of Sabnock, the Guardian", | ||
|  |                  "Vertebra of John, the Gambler", | ||
|  |                  "Scapula of Carlos, the Executioner", | ||
|  |                  "Humerus of McMittens, the Nurse", | ||
|  |                  "Ulna of Koke, the Troubadour", | ||
|  |                  "Radius of Helzer, the Poet", | ||
|  |                  "Frontal of Martinus, the Ropemaker", | ||
|  |                  "Metacarpus of Hodges, the Blacksmith", | ||
|  |                  "Phalanx of Arthur, the Sailor", | ||
|  |                  "Phalanx of Miriam, the Counsellor", | ||
|  |                  "Phalanx of Brannon, the Gravedigger", | ||
|  |                  "Coxal of June, the Prostitute", | ||
|  |                  "Sacrum of the Dark Warlock", | ||
|  |                  "Coccyx of Daniel, the Possessed", | ||
|  |                  "Femur of Karpow, the Bounty Hunter", | ||
|  |                  "Kneecap of Sebastien, the Puppeteer", | ||
|  |                  "Tibia of Alsahli, the Mystic", | ||
|  |                  "Fibula of Rysp, the Ranger", | ||
|  |                  "Temporal of Joel, the Thief", | ||
|  |                  "Metatarsus of Rikusyo, the Traveller", | ||
|  |                  "Phalanx of Zeth, the Prisoner",  | ||
|  |                  "Phalanx of William, the Sceptic", | ||
|  |                  "Phalanx of Aralcarim, the Archivist", | ||
|  |                  "Occipital of Tequila, the Metalsmith", | ||
|  |                  "Maxilla of Tarradax, the Cleric", | ||
|  |                  "Nasal bone of Charles, the Artist", | ||
|  |                  "Hyoid bone of Senex, the Beggar", | ||
|  |                  "Vertebra of Lindquist, the Forger", | ||
|  |                  "Trapezium of Jeremiah, the Hangman", | ||
|  |                  "Trapezoid of Yeager, the Jeweller", | ||
|  |                  "Capitate of Barock, the Herald", | ||
|  |                  "Hamate of Vukelich, the Copyist", | ||
|  |                  "Pisiform of Hernandez, the Explorer", | ||
|  |                  "Triquetral of Luca, the Tailor", | ||
|  |                  "Lunate of Keiya, the Butcher", | ||
|  |                  "Scaphoid of Fierce, the Leper", | ||
|  |                  "Anklebone of Weston, the Pilgrim", | ||
|  |                  "Calcaneum of Persian, the Bandit", | ||
|  |                  "Navicular of Kahnnyhoo, the Murderer"], | ||
|  |      | ||
|  |     "power"   : ["Life Upgrade", | ||
|  |                  "Fervour Upgrade", | ||
|  |                  "Empty Bile Vessel", | ||
|  |                  "Quicksilver"], | ||
|  | 
 | ||
|  |     "prayer"  : ["Seguiriya to your Eyes like Stars", | ||
|  |                  "Debla of the Lights", | ||
|  |                  "Saeta Dolorosa", | ||
|  |                  "Campanillero to the Sons of the Aurora", | ||
|  |                  "Lorquiana", | ||
|  |                  "Zarabanda of the Safe Haven", | ||
|  |                  "Taranto to my Sister", | ||
|  |                  "Solea of Excommunication", | ||
|  |                  "Tiento to your Thorned Hairs", | ||
|  |                  "Cante Jondo of the Three Sisters", | ||
|  |                  "Verdiales of the Forsaken Hamlet", | ||
|  |                  "Romance to the Crimson Mist", | ||
|  |                  "Zambra to the Resplendent Crown", | ||
|  |                  "Cantina of the Blue Rose", | ||
|  |                  "Mirabras of the Return to Port"] | ||
|  | } | ||
|  | 
 | ||
|  | tears_set: Set[str] = [ | ||
|  |     "Tears of Atonement (500)", | ||
|  |     "Tears of Atonement (625)", | ||
|  |     "Tears of Atonement (750)", | ||
|  |     "Tears of Atonement (1000)", | ||
|  |     "Tears of Atonement (1250)", | ||
|  |     "Tears of Atonement (1500)", | ||
|  |     "Tears of Atonement (1750)", | ||
|  |     "Tears of Atonement (2000)", | ||
|  |     "Tears of Atonement (2100)", | ||
|  |     "Tears of Atonement (2500)", | ||
|  |     "Tears of Atonement (2600)", | ||
|  |     "Tears of Atonement (3000)", | ||
|  |     "Tears of Atonement (4300)", | ||
|  |     "Tears of Atonement (5000)", | ||
|  |     "Tears of Atonement (5500)", | ||
|  |     "Tears of Atonement (9000)", | ||
|  |     "Tears of Atonement (10000)", | ||
|  |     "Tears of Atonement (11250)", | ||
|  |     "Tears of Atonement (18000)", | ||
|  |     "Tears of Atonement (30000)" | ||
|  | ] | ||
|  | 
 | ||
|  | reliquary_set: Set[str] = [ | ||
|  |     "Reliquary of the Fervent Heart", | ||
|  |     "Reliquary of the Suffering Heart", | ||
|  |     "Reliquary of the Sorrowful Heart" | ||
|  | ] | ||
|  | 
 | ||
|  | skill_set: Set[str] = [ | ||
|  |     "Combo Skill", | ||
|  |     "Charged Skill", | ||
|  |     "Ranged Skill", | ||
|  |     "Dive Skill", | ||
|  |     "Lunge Skill" | ||
|  | ] |