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
95
96
97
|
Poison50PercentEffect: ; 2c000 (b:4000)
text_de PoisonCheckText
call TossCoin_BankB
ret nc
PoisonEffect: ; 2c007 (b:4007)
lb bc, $0f, POISONED
jr applyEffect
lb bc, $0f, DOUBLE_POISONED
jr applyEffect
Paralysis50PercentEffect: ; 2c011 (b:4011)
text_de ParalysisCheckText
call TossCoin_BankB
ret nc
lb bc, $f0, PARALYZED
jr applyEffect
Confusion50PercentEffect: ; 2c01d (b:401d)
text_de ConfusionCheckText
call TossCoin_BankB
ret nc
lb bc, $f0, CONFUSED
jr applyEffect
text_de SleepCheckText
call TossCoin_BankB
ret nc
SleepEffect: ; 2c030 (b:4030)
lb bc, $f0, ASLEEP
jr applyEffect
applyEffect
ldh a, [hWhoseTurn]
ld hl, wcc05
cp [hl]
jr nz, .canInduceStatus
ld a, [wTempNonTurnDuelistCardId]
cp CLEFAIRY_DOLL
jr z, .cantInduceStatus
cp MYSTERIOUS_FOSSIL
jr z, .cantInduceStatus
; snorlax's thick skinned prevents it from being statused...
cp SNORLAX
jr nz, .canInduceStatus
call SwapTurn
xor a
; ...unless already so, or if affected by muk's toxic gas
call CheckIfUnderAnyCannotUseStatus2
call SwapTurn
jr c, .canInduceStatus
.cantInduceStatus
ld a, c
ld [wccf1], a
call Func_2c09c
or a
ret
.canInduceStatus
ld hl, wcccd
push hl
ld e, [hl]
ld d, $0
ld hl, wccce
add hl, de
call SwapTurn
ldh a, [hWhoseTurn]
ld [hli], a
call SwapTurn
ld [hl], b
inc hl
ld [hl], c
pop hl
inc [hl]
inc [hl]
inc [hl]
scf
ret
; 0x2c07e
TossCoin_BankB: ; 2c07e (b:407e)
call TossCoin
ret
; 0x2c082
INCBIN "baserom.gbc",$2c082,$2c09c - $2c082
Func_2c09c: ; 2c09c (b:409c)
ld a, $1
ld [wcced], a
ret
; 0x2c0a2
INCBIN "baserom.gbc",$2c0a2,$30000 - $2c0a2
|