24 lines
		
	
	
		
			799 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			24 lines
		
	
	
		
			799 B
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | from .itemInfo import ItemInfo | ||
|  | from .constants import * | ||
|  | 
 | ||
|  | 
 | ||
|  | class MadBatter(ItemInfo): | ||
|  |     def configure(self, options): | ||
|  |         return | ||
|  | 
 | ||
|  |     def patch(self, rom, option, *, multiworld=None): | ||
|  |         rom.banks[0x18][0x0F90 + (self.room & 0x0F)] = CHEST_ITEMS[option] | ||
|  |         if multiworld is not None: | ||
|  |             rom.banks[0x3E][0x3300 + self.room] = multiworld | ||
|  | 
 | ||
|  |     def read(self, rom): | ||
|  |         assert self._location is not None, hex(self.room) | ||
|  |         value = rom.banks[0x18][0x0F90 + (self.room & 0x0F)] | ||
|  |         for k, v in CHEST_ITEMS.items(): | ||
|  |             if v == value: | ||
|  |                 return k | ||
|  |         raise ValueError("Could not find mad batter contents in ROM (0x%02x)" % (value)) | ||
|  | 
 | ||
|  |     def __repr__(self): | ||
|  |         return "%s:%03x" % (self.__class__.__name__, self.room) |