summaryrefslogtreecommitdiff
path: root/engine/battle/effect_commands/attract.asm
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2017-12-28 01:30:36 -0500
committerGitHub <noreply@github.com>2017-12-28 01:30:36 -0500
commitda28d1a84b0499bead314e17ae2ff0d13eb03196 (patch)
treec212adfc53d1996c06f2e4be1d6e480e687a2ad8 /engine/battle/effect_commands/attract.asm
parentbad9e33530af8cdc29ce5629df682fc7915bfff0 (diff)
parent2c4777f3363cd64d05fb00084fd83dff8ac31674 (diff)
Merge pull request #437 from roukaour/master
Reorganize battle/; rename most "header" misnomers; gfx/pics → gfx/pokemon
Diffstat (limited to 'engine/battle/effect_commands/attract.asm')
-rwxr-xr-xengine/battle/effect_commands/attract.asm79
1 files changed, 79 insertions, 0 deletions
diff --git a/engine/battle/effect_commands/attract.asm b/engine/battle/effect_commands/attract.asm
new file mode 100755
index 000000000..0a6d7c975
--- /dev/null
+++ b/engine/battle/effect_commands/attract.asm
@@ -0,0 +1,79 @@
+BattleCommand_Attract: ; 377ce
+; attract
+ ld a, [AttackMissed]
+ and a
+ jr nz, .failed
+ call CheckOppositeGender
+ jr c, .failed
+ call CheckHiddenOpponent
+ jr nz, .failed
+ ld a, BATTLE_VARS_SUBSTATUS1_OPP
+ call GetBattleVarAddr
+ bit SUBSTATUS_IN_LOVE, [hl]
+ jr nz, .failed
+
+ set SUBSTATUS_IN_LOVE, [hl]
+ call AnimateCurrentMove
+
+; 'fell in love!'
+ ld hl, FellInLoveText
+ jp StdBattleTextBox
+
+.failed
+ jp FailAttract
+; 377f5
+
+
+CheckOppositeGender: ; 377f5
+ ld a, MON_SPECIES
+ call BattlePartyAttr
+ ld a, [hl]
+ ld [CurPartySpecies], a
+
+ ld a, [CurBattleMon]
+ ld [CurPartyMon], a
+ xor a
+ ld [MonType], a
+
+ farcall GetGender
+ jr c, .genderless_samegender
+
+ ld b, 1
+ jr nz, .got_gender
+ dec b
+
+.got_gender
+ push bc
+ ld a, [TempEnemyMonSpecies]
+ ld [CurPartySpecies], a
+ ld hl, EnemyMonDVs
+ ld a, [EnemySubStatus5]
+ bit SUBSTATUS_TRANSFORMED, a
+ jr z, .not_transformed
+ ld hl, wEnemyBackupDVs
+.not_transformed
+ ld a, [hli]
+ ld [TempMonDVs], a
+ ld a, [hl]
+ ld [TempMonDVs + 1], a
+ ld a, 3
+ ld [MonType], a
+ farcall GetGender
+ pop bc
+ jr c, .genderless_samegender
+
+ ld a, 1
+ jr nz, .got_enemy_gender
+ dec a
+
+.got_enemy_gender
+ xor b
+ jr z, .genderless_samegender
+
+ and a
+ ret
+
+.genderless_samegender
+ scf
+ ret
+; 3784b