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
|
MANIA_OT_ID EQU 00518
GiveShuckle:
; Adding to the party.
xor a ; PARTYMON
ld [wMonType], a
; Level 15 Shuckle.
ld a, SHUCKLE
ld [wCurPartySpecies], a
ld a, 15
ld [wCurPartyLevel], a
predef TryAddMonToParty
jr nc, .NotGiven
; Caught data.
ld b, CAUGHT_BY_UNKNOWN
farcall SetGiftPartyMonCaughtData
; Holding a Berry.
ld bc, PARTYMON_STRUCT_LENGTH
ld a, [wPartyCount]
dec a
push af
push bc
ld hl, wPartyMon1Item
call AddNTimes
ld [hl], BERRY
pop bc
pop af
; OT ID.
ld hl, wPartyMon1ID
call AddNTimes
ld a, HIGH(MANIA_OT_ID)
ld [hli], a
ld [hl], LOW(MANIA_OT_ID)
; Nickname.
ld a, [wPartyCount]
dec a
ld hl, wPartyMonNicknames
call SkipNames
ld de, SpecialShuckleNickname
call CopyName2
; OT.
ld a, [wPartyCount]
dec a
ld hl, wPartyMonOTs
call SkipNames
ld de, SpecialShuckleOT
call CopyName2
; Engine flag for this event.
ld hl, wDailyFlags1
set DAILYFLAGS1_GOT_SHUCKIE_TODAY_F, [hl]
ld a, 1
ld [wScriptVar], a
ret
.NotGiven:
xor a
ld [wScriptVar], a
ret
SpecialShuckleOT:
db "MANIA@"
SpecialShuckleNickname:
db "SHUCKIE@"
ReturnShuckie:
farcall SelectMonFromParty
jr c, .refused
ld a, [wCurPartySpecies]
cp SHUCKLE
jr nz, .DontReturn
ld a, [wCurPartyMon]
ld hl, wPartyMon1ID
ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
; OT ID
ld a, [hli]
cp HIGH(MANIA_OT_ID)
jr nz, .DontReturn
ld a, [hl]
cp LOW(MANIA_OT_ID)
jr nz, .DontReturn
; OT
ld a, [wCurPartyMon]
ld hl, wPartyMonOTs
call SkipNames
ld de, SpecialShuckleOT
.CheckOT:
ld a, [de]
cp [hl]
jr nz, .DontReturn
cp "@"
jr z, .done
inc de
inc hl
jr .CheckOT
.done
farcall CheckCurPartyMonFainted
jr c, .fainted
ld a, [wCurPartyMon]
ld hl, wPartyMon1Happiness
ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld a, [hl]
cp 150
ld a, SHUCKIE_HAPPY
jr nc, .HappyToStayWithYou
xor a ; REMOVE_PARTY
ld [wPokemonWithdrawDepositParameter], a
callfar RemoveMonFromPartyOrBox
ld a, SHUCKIE_RETURNED
.HappyToStayWithYou:
ld [wScriptVar], a
ret
.refused
ld a, SHUCKIE_REFUSED
ld [wScriptVar], a
ret
.DontReturn:
xor a ; SHUCKIE_WRONG_MON
ld [wScriptVar], a
ret
.fainted
ld a, SHUCKIE_FAINTED
ld [wScriptVar], a
ret
|