34 lines
		
	
	
		
			998 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			998 B
		
	
	
	
		
			Python
		
	
	
	
| from typing import NamedTuple, Optional, Union
 | |
| from BaseClasses import Item, ItemClassification
 | |
| 
 | |
| 
 | |
| class SongData(NamedTuple):
 | |
|     """Special data container to contain the metadata of each song to make filtering work."""
 | |
| 
 | |
|     code: Optional[int]
 | |
|     album: str
 | |
|     streamer_mode: bool
 | |
|     easy: Optional[int]
 | |
|     hard: Optional[int]
 | |
|     master: Optional[int]
 | |
| 
 | |
| 
 | |
| class AlbumData(NamedTuple):
 | |
|     """Special data container to contain the metadata of each album to make filtering work. Currently not used."""
 | |
| 
 | |
|     code: Optional[int]
 | |
| 
 | |
| 
 | |
| class MuseDashSongItem(Item):
 | |
|     game: str = "Muse Dash"
 | |
| 
 | |
|     def __init__(self, name: str, player: int, data: Union[SongData, AlbumData]) -> None:
 | |
|         super().__init__(name, ItemClassification.progression, data.code, player)
 | |
| 
 | |
| 
 | |
| class MuseDashFixedItem(Item):
 | |
|     game: str = "Muse Dash"
 | |
| 
 | |
|     def __init__(self, name: str, classification: ItemClassification, code: Optional[int], player: int) -> None:
 | |
|         super().__init__(name, classification, code, player)
 |