shithub: pokecrystal

Download patch

ref: 9b8f57a7308691f67f9025b5dcc621941dbc3afd
parent: f8455e9b4f0270811dac718810811292beb41da6
author: Fredrik Ljungdahl <[email protected]>
date: Sat Jan 7 20:33:38 EST 2017

Explain a major AI-related bug with type matchup checks

--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -1542,6 +1542,12 @@
 	jr z, CheckTypeMatchup
 	ld hl, BattleMonType1
 CheckTypeMatchup: ; 347d3
+; There is an incorrect assumption about this function made in the AI related code: when
+; the AI calls CheckTypeMatchup (not BattleCheckTypeMatchup), it assumes that placing the
+; offensive type in a will make this function do the right thing. Since a is overwritten,
+; this assumption is incorrect. A simple fix would be to load the move type for the
+; current move into a in BattleCheckTypeMatchup, before falling through, which is
+; consistent with how the rest of the code assumes this code works like.
 	push hl
 	push de
 	push bc