1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
InitBattleVariables: ; 525af (14:65af)
ld a, [hTilesetType]
ld [wd0d4], a
xor a
ld [wcd6a], a
ld [wBattleResult], a
ld hl, wcc2b
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
ld [wListScrollOffset], a
ld [wCriticalHitOrOHKO], a
ld [wBattleMonSpecies], a
ld [wPartyGainExpFlags], a
ld [wPlayerMonNumber], a
ld [wEscapedFromBattle], a
ld [wMapPalOffset], a
ld hl, wcf1d
ld [hli], a
ld [hl], a
ld hl, wccd3
ld b, $3c
.loop
ld [hli], a
dec b
jr nz, .loop
inc a
ld [wccd9], a
ld a, [W_CURMAP]
cp SAFARI_ZONE_EAST
jr c, .notSafariBattle
cp SAFARI_ZONE_REST_HOUSE_1
jr nc, .notSafariBattle
ld a, $2 ; safari battle
ld [W_BATTLETYPE], a
.notSafariBattle
ld hl, PlayBattleMusic
ld b, BANK(PlayBattleMusic)
jp Bankswitch
ParalyzeEffect_: ; 52601 (14:6601)
ld hl, wEnemyMonStatus
ld de, W_PLAYERMOVETYPE
ld a, [H_WHOSETURN]
and a
jp z, .next
ld hl, wBattleMonStatus
ld de, W_ENEMYMOVETYPE
.next
ld a, [hl]
and a ; does the target already have a status ailment?
jr nz, .didntAffect
; check if the target is immune due to types
ld a, [de]
cp ELECTRIC
jr nz, .hitTest
ld b, h
ld c, l
inc bc
ld a, [bc]
cp GROUND
jr z, .doesntAffect
inc bc
ld a, [bc]
cp GROUND
jr z, .doesntAffect
.hitTest
push hl
callab MoveHitTest
pop hl
ld a, [W_MOVEMISSED]
and a
jr nz, .didntAffect
set PAR, [hl]
callab QuarterSpeedDueToParalysis
ld c, 30
call DelayFrames
callab PlayCurrentMoveAnimation
ld hl, PrintMayNotAttackText
ld b, BANK(PrintMayNotAttackText)
jp Bankswitch
.didntAffect
ld c, 50
call DelayFrames
ld hl, PrintDidntAffectText
ld b, BANK(PrintDidntAffectText)
jp Bankswitch
.doesntAffect
ld c, 50
call DelayFrames
ld hl, PrintDoesntAffectText
ld b, BANK(PrintDoesntAffectText)
jp Bankswitch
|