diff options
author | yenatch <yenatch@gmail.com> | 2018-02-25 22:39:51 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-25 22:39:51 -0500 |
commit | 725148443f0ed0f70af747259ef49643359e92a2 (patch) | |
tree | 5f8ccf80489e0820934d40a732a5ce8d7f65e1e3 /engine/battle/move_effects/transform.asm | |
parent | f44f306cfd4b438d0ba2f56b61be4b118ef3274b (diff) | |
parent | 7453bd1aa8e55a1a9fcce7c69f62106f5e5f6e9c (diff) |
Merge pull request #476 from Rangi42/master
Resolve some issues; rename some maps; move more tables into data/; warp_def → warp_event (ready to merge)
Diffstat (limited to 'engine/battle/move_effects/transform.asm')
-rwxr-xr-x | engine/battle/move_effects/transform.asm | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/engine/battle/move_effects/transform.asm b/engine/battle/move_effects/transform.asm new file mode 100755 index 000000000..5ae7c1511 --- /dev/null +++ b/engine/battle/move_effects/transform.asm @@ -0,0 +1,141 @@ + +BattleCommand_Transform: ; 371cd +; transform + + call ClearLastMove + ld a, BATTLE_VARS_SUBSTATUS5_OPP + call GetBattleVarAddr + bit SUBSTATUS_TRANSFORMED, [hl] + jp nz, BattleEffect_ButItFailed + call CheckHiddenOpponent + jp nz, BattleEffect_ButItFailed + xor a + ld [wNumHits], a + ld [wFXAnimID + 1], a + ld a, $1 + ld [wKickCounter], a + ld a, BATTLE_VARS_SUBSTATUS4 + call GetBattleVarAddr + bit SUBSTATUS_SUBSTITUTE, [hl] + push af + jr z, .mimic_substitute + call CheckUserIsCharging + jr nz, .mimic_substitute + ld a, SUBSTITUTE + call LoadAnim +.mimic_substitute + ld a, BATTLE_VARS_SUBSTATUS5 + call GetBattleVarAddr + set SUBSTATUS_TRANSFORMED, [hl] + call ResetActorDisable + ld hl, wBattleMonSpecies + ld de, wEnemyMonSpecies + ld a, [hBattleTurn] + and a + jr nz, .got_mon_species + ld hl, wEnemyMonSpecies + ld de, wBattleMonSpecies + xor a + ld [wCurMoveNum], a +.got_mon_species + push hl + ld a, [hli] + ld [de], a + inc hl + inc de + inc de + ld bc, NUM_MOVES + call CopyBytes + ld a, [hBattleTurn] + and a + jr z, .mimic_enemy_backup + ld a, [de] + ld [wEnemyBackupDVs], a + inc de + ld a, [de] + ld [wEnemyBackupDVs + 1], a + dec de +.mimic_enemy_backup +; copy DVs + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de +; move pointer to stats + ld bc, wBattleMonStats - wBattleMonPP + add hl, bc + push hl + ld h, d + ld l, e + add hl, bc + ld d, h + ld e, l + pop hl + ld bc, wBattleMonStructEnd - wBattleMonStats + call CopyBytes +; init the power points + ld bc, wBattleMonMoves - wBattleMonStructEnd + add hl, bc + push de + ld d, h + ld e, l + pop hl + ld bc, wBattleMonPP - wBattleMonStructEnd + add hl, bc + ld b, NUM_MOVES +.pp_loop + ld a, [de] + inc de + and a + jr z, .done_move + cp SKETCH + ld a, 1 + jr z, .done_move + ld a, 5 +.done_move + ld [hli], a + dec b + jr nz, .pp_loop + pop hl + ld a, [hl] + ld [wNamedObjectIndexBuffer], a + call GetPokemonName + ld hl, wEnemyStats + ld de, wPlayerStats + ld bc, 2 * 5 + call BattleSideCopy + ld hl, wEnemyStatLevels + ld de, wPlayerStatLevels + ld bc, 8 + call BattleSideCopy + call _CheckBattleScene + jr c, .mimic_anims + ld a, [hBattleTurn] + and a + ld a, [wPlayerMinimized] + jr z, .got_byte + ld a, [wEnemyMinimized] +.got_byte + and a + jr nz, .mimic_anims + call LoadMoveAnim + jr .after_anim + +.mimic_anims + call BattleCommand_MoveDelay + call BattleCommand_RaiseSubNoAnim +.after_anim + xor a + ld [wNumHits], a + ld [wFXAnimID + 1], a + ld a, $2 + ld [wKickCounter], a + pop af + ld a, SUBSTITUTE + call nz, LoadAnim + ld hl, TransformedText + jp StdBattleTextBox + +; 372c6 |