34 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			34 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								from ..assembler import ASM
							 | 
						||
| 
								 | 
							
								from ..utils import formatText
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def setStartHealth(rom, amount):
							 | 
						||
| 
								 | 
							
								    rom.patch(0x01, 0x0B1C, ASM("ld  [hl], $03"), ASM("ld  [hl], $%02X" % (amount)))  # max health of new save
							 | 
						||
| 
								 | 
							
								    rom.patch(0x01, 0x0B14, ASM("ld  [hl], $18"), ASM("ld  [hl], $%02X" % (amount * 8)))  # current health of new save
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def upgradeHealthContainers(rom):
							 | 
						||
| 
								 | 
							
								    # Reuse 2 unused shop messages for the heart containers.
							 | 
						||
| 
								 | 
							
								    rom.texts[0x2A] = formatText("You found a {HEART_CONTAINER}!")
							 | 
						||
| 
								 | 
							
								    rom.texts[0x2B] = formatText("You lost a heart!")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    rom.patch(0x03, 0x19DC, ASM("""
							 | 
						||
| 
								 | 
							
								        ld   de, $59D8
							 | 
						||
| 
								 | 
							
								        call $3BC0
							 | 
						||
| 
								 | 
							
								    """), ASM("""
							 | 
						||
| 
								 | 
							
								        ld   a, $05  ; renderHeartPiece
							 | 
						||
| 
								 | 
							
								        rst  8
							 | 
						||
| 
								 | 
							
								    """), fill_nop=True)
							 | 
						||
| 
								 | 
							
								    rom.patch(0x03, 0x19F0, ASM("""
							 | 
						||
| 
								 | 
							
								        ld   hl, $DB5B
							 | 
						||
| 
								 | 
							
								        inc  [hl]
							 | 
						||
| 
								 | 
							
								        ld   hl, $DB93
							 | 
						||
| 
								 | 
							
								        ld   [hl], $FF
							 | 
						||
| 
								 | 
							
								    """), ASM("""
							 | 
						||
| 
								 | 
							
								        ld   a, $06 ; giveItemMultiworld
							 | 
						||
| 
								 | 
							
								        rst  8
							 | 
						||
| 
								 | 
							
								        ld   a, $0A ; messageForItemMultiworld
							 | 
						||
| 
								 | 
							
								        rst  8
							 | 
						||
| 
								 | 
							
								skip:
							 | 
						||
| 
								 | 
							
								    """), fill_nop=True)  # add heart->remove heart on heart container
							 |