shithub: pokecrystal

Download patch

ref: 15122d6181f01a27235fa8e874341f0fdcf4abc4
parent: f3f37d047267c6c94c24bb026a5c7fc9b06eb643
author: yenatch <[email protected]>
date: Thu Feb 27 08:22:16 EST 2014

Trainer item AI.

--- a/main.asm
+++ b/main.asm
@@ -40659,13 +40659,13 @@
 	ld a, [$c731]
 	and a
 	jr nz, Function38041
-	ld hl, $55a1
+	ld hl, TrainerClassAttributes + 5
 	ld a, [$cfc0]
 	and a
 	jr nz, .asm_38032
 	ld a, [TrainerClass]
 	dec a
-	ld bc, $0007
+	ld bc, 7
 	call AddNTimes
 
 .asm_38032
@@ -40803,12 +40803,12 @@
 	ret nc
 	ld a, [TrainerClass]
 	dec a
-	ld hl, $55a1
-	ld bc, $0007
+	ld hl, TrainerClassAttributes + 5
+	ld bc, 7
 	call AddNTimes
 	ld b, h
 	ld c, l
-	ld hl, $4196
+	ld hl, Unknown_38196
 	ld de, $c650
 .asm_3812c
 	ld a, [hl]
@@ -40832,14 +40832,14 @@
 	inc hl
 	push hl
 	push de
-	ld de, $414a
+	ld de, .asm_3814a
 	push de
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
 	jp [hl]
-; 3814a
 
+.asm_3814a
 	pop de
 	pop hl
 	inc hl
@@ -40893,11 +40893,29 @@
 	ret
 ; 38196
 
-INCBIN "baserom.gbc",$38196,$381be - $38196
+Unknown_38196: ; 39196
+	dbw FULL_RESTORE, Function38208
+	dbw MAX_POTION,   Function38220
+	dbw HYPER_POTION, Function38284
+	dbw SUPER_POTION, Function38292
+	dbw POTION,       Function382a0
+	dbw X_ACCURACY,   Function382f9
+	dbw FULL_HEAL,    Function381be
+	dbw GUARD_SPEC,   Function38305
+	dbw DIRE_HIT,     Function38311
+	dbw X_ATTACK,     Function3831d
+	dbw X_DEFEND,     Function38329
+	dbw X_SPEED,      Function38335
+	dbw X_SPECIAL,    Function38341
+	db $ff
+; 381be
+
+Function381be: ; 381be
 	call Function381ca
 	jp c, Function38383
 	call Function383a3
 	jp Function38385
+; 381ca
 
 ; known jump sources: 381be (e:41be), 38214 (e:4214)
 Function381ca: ; 381ca (e:41ca)
@@ -40914,6 +40932,7 @@
 	cp $32
 	jp c, Function38385
 	jp Function38383
+
 .asm_381e7
 	ld a, [EnemySubStatus5] ; $c671
 	bit 0, a
@@ -40929,6 +40948,9 @@
 	and $27
 	jp z, Function38383
 	jp Function38385
+; 38208
+
+Function38208: ; 38208
 	call Function3822c
 	jp nc, Function3821a
 	ld a, [bc]
@@ -40941,6 +40963,9 @@
 Function3821a: ; 3821a (e:421a)
 	call Function383b5
 	jp Function38385
+; 38220
+
+Function38220: ; 38220
 	call Function3822c
 	jp c, Function38383
 	call Function383ae
@@ -40950,7 +40975,7 @@
 Function3822c: ; 3822c (e:422c)
 	ld a, [bc]
 	bit 6, a
-	jr nz, asm_38267
+	jr nz, Function38267
 	callab AICheckEnemyHalfHP
 	jp c, Function38383
 	ld a, [bc]
@@ -40971,7 +40996,8 @@
 	cp $32
 	jp c, Function38383
 	jr Function38281
-asm_38267: ; 38267 (e:4267)
+
+Function38267: ; 38267 (e:4267)
 	callab AICheckEnemyHalfHP
 	jp c, Function38383
 	callab AICheckEnemyQuarterHP
@@ -40983,22 +41009,127 @@
 ; known jump sources: 38246 (e:4246), 3824e (e:424e), 38265 (e:4265), 38276 (e:4276)
 Function38281: ; 38281 (e:4281)
 	jp Function38385
+; 38284
+
+Function38284: ; 38284
 	call Function3822c
 	jp c, Function38383
-	ld b, $c8
+	ld b, 200
 	call Function383f4
 	jp Function38385
 ; 38292 (e:4292)
 
-INCBIN "baserom.gbc",$38292,$38311 - $38292
+Function38292: ; 38292
+	call Function3822c
+	jp c, Function38383
+
+Function38298: ; 38298
+	ld b, 50
+	call Function383ee
+	jp Function38385
+; 382a0
+
+Function382a0: ; 382a0
+	call Function3822c
+	jp c, Function38383
+	ld b, 20
+	call Function383e8
+	jp Function38385
+; 382ae
+
+Function382ae: ; 382ae
+	callab AICheckEnemyMaxHP
+	jr c, .asm_382e4
+	push bc
+	ld de, EnemyMonMaxHPLo
+	ld hl, EnemyMonHPLo
+	ld a, [de]
+	sub [hl]
+	jr z, .asm_382e7
+	dec hl
+	dec de
+	ld c, a
+	sbc [hl]
+	and a
+	jr nz, .asm_382e7
+	ld a, c
+	cp b
+	jp c, .asm_382d5
+	callab AICheckEnemyQuarterHP
+	jr c, .asm_382e7
+
+.asm_382d5
+	pop bc
+	ld a, [bc]
+	bit 5, a
+	jp z, Function38385
+	call Random
+	cp $80
+	jp c, Function38385
+
+.asm_382e4
+	jp Function38383
+
+.asm_382e7
+	pop bc
+	ld a, [bc]
+	bit 5, a
+	jp z, Function38383
+	call Random
+	cp $64
+	jp c, Function38385
+	jp Function38383
+; 382f9
+
+Function382f9: ; 382f9
 	call Function3834d
 	jp c, Function38383
+	call Function384f7
+	jp Function38385
+; 38305
+
+Function38305: ; 38305
+	call Function3834d
+	jp c, Function38383
+	call Function38504
+	jp Function38385
+; 38311
+
+Function38311: ; 38311
+	call Function3834d
+	jp c, Function38383
 	call Function38511
 	jp Function38385
 ; 3831d (e:431d)
 
-INCBIN "baserom.gbc",$3831d,$3834d - $3831d
+Function3831d: ; 3831d
+	call Function3834d
+	jp c, Function38383
+	call Function38541
+	jp Function38385
+; 38329
 
+Function38329: ; 38329
+	call Function3834d
+	jp c, Function38383
+	call Function38547
+	jp Function38385
+; 38335
+
+Function38335: ; 38335
+	call Function3834d
+	jp c, Function38383
+	call Function3854d
+	jp Function38385
+; 38341
+
+Function38341: ; 38341
+	call Function3834d
+	jp c, Function38383
+	call Function38553
+	jp Function38385
+; 3834d
+
 ; known jump sources: 38311 (e:4311)
 Function3834d: ; 3834d (e:434d)
 	ld a, [EnemyTurnsTaken] ; $c6dc
@@ -41101,12 +41232,22 @@
 	jr asm_38436
 ; 383e8 (e:43e8)
 
-INCBIN "baserom.gbc",$383e8,$383f4 - $383e8
+Function383e8: ; 383e8
+	ld a, POTION
+	ld b, 20
+	jr Function383f8
 
+Function383ee: ; 383ee
+	ld a, SUPER_POTION
+	ld b, 50
+	jr Function383f8
+
 ; known jump sources: 3828c (e:428c)
 Function383f4: ; 383f4 (e:43f4)
-	ld a, $10
-	ld b, $c8
+	ld a, HYPER_POTION
+	ld b, 200
+
+Function383f8: ; 383f8
 	ld [$d1f1], a
 	ld hl, EnemyMonHPLo ; $d217
 	ld a, [hl]
@@ -41487,15 +41628,12 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
-	ld bc, .data_397d0
+	ld bc, .asm_397d0
 	push bc
 	jp [hl]
 
-.data_397d0
 .asm_397d0
-	db $c3
-	db $1b
-	db $59
+	jp Function3991b
 
 .asm_397d3
 	ld a, $0