mirror of
https://github.com/thornAvery/jep-hack.git
synced 2025-11-22 04:45:31 +13:00
- Adds Pockle, an evolution of Shuckle based on cut data from early 1999. Uses a custom sprite reminiscent of Shuckle's early 'pot' design, with the base sprite being used in Pokemon October, then heavily edited by me. - Reworked the Shuckie event entirely. Shuckie is now 5 levels higher and holds a Berry Juice, and their OT has been changed to the better name used in HGSS. Kirk now no longer takes Shuckie back from you after a day, instead giving you an incentive to raise Shuckie's friendship. Once you raise it high enough, he gives you the Antique Pot, which (currently) acts like an evolution Stone for Shuckle. - Kirk now no longer checks for the species as well, allowing the sidequest to be completed immediately by showing him an evolved Shuckie. This does mean that this can be bypassed with the right OT and ID, but you basically need ACE or RNG manip to achieve that so its a non-issue.
157 lines
2.4 KiB
NASM
157 lines
2.4 KiB
NASM
DEF MANIA_OT_ID EQU 00518
|
|
|
|
GiveShuckle:
|
|
; Adding to the party.
|
|
xor a ; PARTYMON
|
|
ld [wMonType], a
|
|
|
|
; Level 20 Shuckle.
|
|
ld hl, SHUCKLE
|
|
call GetPokemonIDFromIndex
|
|
ld [wCurPartySpecies], a
|
|
ld a, 20
|
|
ld [wCurPartyLevel], a
|
|
|
|
predef TryAddMonToParty
|
|
jr nc, .NotGiven
|
|
|
|
; Caught data.
|
|
ld b, CAUGHT_BY_UNKNOWN
|
|
farcall SetGiftPartyMonCaughtData
|
|
|
|
; Holding a Berry Juice.
|
|
ld bc, PARTYMON_STRUCT_LENGTH
|
|
ld a, [wPartyCount]
|
|
dec a
|
|
push af
|
|
push bc
|
|
ld hl, wPartyMon1Item
|
|
call AddNTimes
|
|
ld [hl], BERRY_JUICE
|
|
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 "KIRK@" ; This guy was called Mania in Gen 2, which was changed to Kirk in HGSS. I prefer Kirk.
|
|
|
|
SpecialShuckleNickname:
|
|
db "SHUCKIE@"
|
|
|
|
ReturnShuckie:
|
|
farcall SelectMonFromParty
|
|
jr c, .refused
|
|
|
|
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, [wCurPartySpecies]
|
|
call GetPokemonIndexFromID
|
|
ld a, l
|
|
sub LOW(POCKLE)
|
|
if HIGH(POCKLE) == 0
|
|
or h
|
|
else
|
|
jr nz, .notPockle
|
|
if HIGH(POCKLE) == 1
|
|
dec h
|
|
else
|
|
ld a, h
|
|
cp HIGH(POCKLE)
|
|
endc
|
|
endc
|
|
jr nz, .notPockle
|
|
ld a, SHUCKIE_EVOLVED
|
|
ld [wScriptVar], a
|
|
ret
|
|
.notPockle:
|
|
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
|
|
ld a, SHUCKIE_OKAY
|
|
.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
|