28 lines
		
	
	
		
			912 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			28 lines
		
	
	
		
			912 B
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | from .itemInfo import ItemInfo | ||
|  | from .constants import * | ||
|  | 
 | ||
|  | 
 | ||
|  | class TunicFairy(ItemInfo): | ||
|  | 
 | ||
|  |     def __init__(self, index): | ||
|  |         self.index = index | ||
|  |         super().__init__(0x301) | ||
|  |          | ||
|  |     def patch(self, rom, option, *, multiworld=None): | ||
|  |         # Old index, maybe not needed anymore | ||
|  |         rom.banks[0x36][0x11BF + self.index] = CHEST_ITEMS[option] | ||
|  |         rom.banks[0x3e][0x3800 + 0x301 + self.index*3] = CHEST_ITEMS[option] | ||
|  |         if multiworld: | ||
|  |             rom.banks[0x3e][0x3300 + 0x301 + self.index*3] = multiworld | ||
|  |          | ||
|  |     def read(self, rom): | ||
|  |         value = rom.banks[0x36][0x11BF + self.index] | ||
|  |         for k, v in CHEST_ITEMS.items(): | ||
|  |             if v == value: | ||
|  |                 return k | ||
|  |         raise ValueError("Could not find tunic fairy contents in ROM (0x%02x)" % (value)) | ||
|  | 
 | ||
|  |     @property | ||
|  |     def nameId(self): | ||
|  |         return "0x%03X-%s" % (self.room, self.index) |