You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-09-08 08:13:02 -07:00
Move-unique effect commands consistently go in engine/battle/move_effects/
This commit is contained in:
145
engine/battle/move_effects/sleep_talk.asm
Normal file
145
engine/battle/move_effects/sleep_talk.asm
Normal file
@@ -0,0 +1,145 @@
|
||||
BattleCommand_SleepTalk: ; 35b33
|
||||
; sleeptalk
|
||||
|
||||
call ClearLastMove
|
||||
ld a, [AttackMissed]
|
||||
and a
|
||||
jr nz, .fail
|
||||
ld a, [hBattleTurn]
|
||||
and a
|
||||
ld hl, BattleMonMoves + 1
|
||||
ld a, [DisabledMove]
|
||||
ld d, a
|
||||
jr z, .got_moves
|
||||
ld hl, EnemyMonMoves + 1
|
||||
ld a, [EnemyDisabledMove]
|
||||
ld d, a
|
||||
.got_moves
|
||||
ld a, BATTLE_VARS_STATUS
|
||||
call GetBattleVar
|
||||
and SLP
|
||||
jr z, .fail
|
||||
ld a, [hl]
|
||||
and a
|
||||
jr z, .fail
|
||||
call .safely_check_has_usable_move
|
||||
jr c, .fail
|
||||
dec hl
|
||||
.sample_move
|
||||
push hl
|
||||
call BattleRandom
|
||||
maskbits NUM_MOVES
|
||||
ld c, a
|
||||
ld b, 0
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
pop hl
|
||||
and a
|
||||
jr z, .sample_move
|
||||
ld e, a
|
||||
ld a, BATTLE_VARS_MOVE_ANIM
|
||||
call GetBattleVar
|
||||
cp e
|
||||
jr z, .sample_move
|
||||
ld a, e
|
||||
cp d
|
||||
jr z, .sample_move
|
||||
call .check_two_turn_move
|
||||
jr z, .sample_move
|
||||
ld a, BATTLE_VARS_MOVE
|
||||
call GetBattleVarAddr
|
||||
ld a, e
|
||||
ld [hl], a
|
||||
call CheckUserIsCharging
|
||||
jr nz, .charging
|
||||
ld a, [wKickCounter]
|
||||
push af
|
||||
call BattleCommand_LowerSub
|
||||
pop af
|
||||
ld [wKickCounter], a
|
||||
.charging
|
||||
call LoadMoveAnim
|
||||
call UpdateMoveData
|
||||
jp ResetTurn
|
||||
|
||||
.fail
|
||||
call AnimateFailedMove
|
||||
jp TryPrintButItFailed
|
||||
|
||||
.safely_check_has_usable_move
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
call .check_has_usable_move
|
||||
pop bc
|
||||
pop de
|
||||
pop hl
|
||||
ret
|
||||
|
||||
.check_has_usable_move
|
||||
ld a, [hBattleTurn]
|
||||
and a
|
||||
ld a, [DisabledMove]
|
||||
jr z, .got_move_2
|
||||
|
||||
ld a, [EnemyDisabledMove]
|
||||
.got_move_2
|
||||
ld b, a
|
||||
ld a, BATTLE_VARS_MOVE
|
||||
call GetBattleVar
|
||||
ld c, a
|
||||
dec hl
|
||||
ld d, NUM_MOVES
|
||||
.loop2
|
||||
ld a, [hl]
|
||||
and a
|
||||
jr z, .carry
|
||||
|
||||
cp c
|
||||
jr z, .nope
|
||||
cp b
|
||||
jr z, .nope
|
||||
|
||||
call .check_two_turn_move
|
||||
jr nz, .no_carry
|
||||
|
||||
.nope
|
||||
inc hl
|
||||
dec d
|
||||
jr nz, .loop2
|
||||
|
||||
.carry
|
||||
scf
|
||||
ret
|
||||
|
||||
.no_carry
|
||||
and a
|
||||
ret
|
||||
|
||||
.check_two_turn_move
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
|
||||
ld b, a
|
||||
callfar GetMoveEffect
|
||||
ld a, b
|
||||
|
||||
pop bc
|
||||
pop de
|
||||
pop hl
|
||||
|
||||
cp EFFECT_SKULL_BASH
|
||||
ret z
|
||||
cp EFFECT_RAZOR_WIND
|
||||
ret z
|
||||
cp EFFECT_SKY_ATTACK
|
||||
ret z
|
||||
cp EFFECT_SOLARBEAM
|
||||
ret z
|
||||
cp EFFECT_FLY
|
||||
ret z
|
||||
cp EFFECT_BIDE
|
||||
ret
|
||||
|
||||
; 35bff
|
||||
Reference in New Issue
Block a user