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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
|
GetFirstPokemonHappiness: ; 718d
ld hl, PartyMon1Happiness
ld bc, PARTYMON_STRUCT_LENGTH
ld de, PartySpecies
.loop
ld a, [de]
cp EGG
jr nz, .done
inc de
add hl, bc
jr .loop
.done
ld [wd265], a
ld a, [hl]
ld [ScriptVar], a
call GetPokemonName
jp CopyPokemonName_Buffer1_Buffer3
CheckFirstMonIsEgg: ; 71ac
ld a, [PartySpecies]
ld [wd265], a
cp EGG
ld a, $1
jr z, .egg
xor a
.egg
ld [ScriptVar], a
call GetPokemonName
jp CopyPokemonName_Buffer1_Buffer3
ChangeHappiness: ; 71c2
; Perform happiness action c on CurPartyMon
ld a, [CurPartyMon]
inc a
ld e, a
ld d, 0
ld hl, PartySpecies - 1
add hl, de
ld a, [hl]
cp EGG
ret z
push bc
ld hl, PartyMon1Happiness
ld bc, PARTYMON_STRUCT_LENGTH
ld a, [CurPartyMon]
call AddNTimes
pop bc
ld d, h
ld e, l
push de
ld a, [de]
cp 100
ld e, 0
jr c, .ok
inc e
cp 200
jr c, .ok
inc e
.ok
dec c
ld b, 0
ld hl, .Actions
add hl, bc
add hl, bc
add hl, bc
ld d, 0
add hl, de
ld a, [hl]
cp 100
pop de
ld a, [de]
jr nc, .negative
add [hl]
jr nc, .done
ld a, -1
jr .done
.negative
add [hl]
jr c, .done
xor a
.done
ld [de], a
ld a, [wBattleMode]
and a
ret z
ld a, [CurPartyMon]
ld b, a
ld a, [wPartyMenuCursor]
cp b
ret nz
ld a, [de]
ld [BattleMonHappiness], a
ret
.Actions:
db +5, +3, +2 ; Gained a level
db +5, +3, +2 ; Vitamin
db +1, +1, +0 ; X Item
db +3, +2, +1 ; Battled a Gym Leader
db +1, +1, +0 ; Learned a move
db -1, -1, -1 ; Lost to an enemy
db -5, -5, -10 ; Fainted due to poison
db -5, -5, -10 ; Lost to a much stronger enemy
db +1, +1, +1 ; Haircut (Y1)
db +3, +3, +1 ; Haircut (Y2)
db +5, +5, +2 ; Haircut (Y3)
db +1, +1, +1 ; Haircut (O1)
db +3, +3, +1 ; Haircut (O2)
db +10, +10, +4 ; Haircut (O3)
db -5, -5, -10 ; Used Heal Powder or Energypowder (bitter)
db -10, -10, -15 ; Used Energy Root (bitter)
db -15, -15, -20 ; Used Revival Herb (bitter)
db +3, +3, +1 ; Grooming
db +10, +6, +4 ; Gained a level in the place where it was caught
StepHappiness:: ; 725a
; Raise the party's happiness by 1 point every other step cycle.
ld hl, wHappinessStepCount
ld a, [hl]
inc a
and 1
ld [hl], a
ret nz
ld de, PartyCount
ld a, [de]
and a
ret z
ld c, a
ld hl, PartyMon1Happiness
.loop
inc de
ld a, [de]
cp EGG
jr z, .next
inc [hl]
jr nz, .next
ld [hl], $ff
.next
push de
ld de, PARTYMON_STRUCT_LENGTH
add hl, de
pop de
dec c
jr nz, .loop
ret
DaycareStep:: ; 7282
ld a, [wDaycareMan]
bit 0, a
jr z, .daycare_lady
ld a, [wBreedMon1Level] ; level
cp 100
jr nc, .daycare_lady
ld hl, wBreedMon1Exp + 2 ; exp
inc [hl]
jr nz, .daycare_lady
dec hl
inc [hl]
jr nz, .daycare_lady
dec hl
inc [hl]
ld a, [hl]
cp 5242880 / $10000
jr c, .daycare_lady
ld a, 5242880 / $10000
ld [hl], a
.daycare_lady
ld a, [wDaycareLady]
bit 0, a
jr z, .check_egg
ld a, [wBreedMon2Level] ; level
cp 100
jr nc, .check_egg
ld hl, wBreedMon2Exp + 2 ; exp
inc [hl]
jr nz, .check_egg
dec hl
inc [hl]
jr nz, .check_egg
dec hl
inc [hl]
ld a, [hl]
cp 5242880 / $10000
jr c, .check_egg
ld a, 5242880 / $10000
ld [hl], a
.check_egg
ld hl, wDaycareMan
bit 5, [hl] ; egg
ret z
ld hl, wStepsToEgg
dec [hl]
ret nz
call Random
ld [hl], a
callab CheckBreedmonCompatibility
ld a, [wd265]
cp 230
ld b, -1 + 32 percent
jr nc, .okay
ld a, [wd265]
cp 170
ld b, 16 percent
jr nc, .okay
ld a, [wd265]
cp 110
ld b, 12 percent
jr nc, .okay
ld b, 4 percent
.okay
call Random
cp b
ret nc
ld hl, wDaycareMan
res 5, [hl]
set 6, [hl]
ret
|