Kirk, Shuckie and the Antique Pot

- 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.
This commit is contained in:
Martha Schilling 2024-03-26 00:26:25 +00:00
parent 393f2d7f1b
commit adb9e3c540
41 changed files with 177 additions and 78 deletions

View file

@ -5,11 +5,11 @@ GiveShuckle:
xor a ; PARTYMON
ld [wMonType], a
; Level 15 Shuckle.
; Level 20 Shuckle.
ld hl, SHUCKLE
call GetPokemonIDFromIndex
ld [wCurPartySpecies], a
ld a, 15
ld a, 20
ld [wCurPartyLevel], a
predef TryAddMonToParty
@ -19,7 +19,7 @@ GiveShuckle:
ld b, CAUGHT_BY_UNKNOWN
farcall SetGiftPartyMonCaughtData
; Holding a Berry.
; Holding a Berry Juice.
ld bc, PARTYMON_STRUCT_LENGTH
ld a, [wPartyCount]
dec a
@ -27,7 +27,7 @@ GiveShuckle:
push bc
ld hl, wPartyMon1Item
call AddNTimes
ld [hl], BERRY
ld [hl], BERRY_JUICE
pop bc
pop af
@ -67,7 +67,7 @@ GiveShuckle:
ret
SpecialShuckleOT:
db "MANIA@"
db "KIRK@" ; This guy was called Mania in Gen 2, which was changed to Kirk in HGSS. I prefer Kirk.
SpecialShuckleNickname:
db "SHUCKIE@"
@ -76,23 +76,6 @@ ReturnShuckie:
farcall SelectMonFromParty
jr c, .refused
ld a, [wCurPartySpecies]
call GetPokemonIndexFromID
ld a, l
sub LOW(SHUCKLE)
if HIGH(SHUCKLE) == 0
or h
else
jr nz, .DontReturn
if HIGH(SHUCKLE) == 1
dec h
else
ld a, h
cp HIGH(SHUCKLE)
endc
endc
jr nz, .DontReturn
ld a, [wCurPartyMon]
ld hl, wPartyMon1ID
ld bc, PARTYMON_STRUCT_LENGTH
@ -124,6 +107,26 @@ ReturnShuckie:
.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
@ -132,10 +135,7 @@ ReturnShuckie:
cp 150
ld a, SHUCKIE_HAPPY
jr nc, .HappyToStayWithYou
xor a ; REMOVE_PARTY
ld [wPokemonWithdrawDepositParameter], a
callfar RemoveMonFromPartyOrBox
ld a, SHUCKIE_RETURNED
ld a, SHUCKIE_OKAY
.HappyToStayWithYou:
ld [wScriptVar], a
ret

View file

@ -184,7 +184,7 @@ ItemEffects:
dw GorgeousBoxEffect ; GORGEOUS_BOX
dw EvoStoneEffect ; SUN_STONE
dw NoEffect ; POLKADOT_BOW
dw NoEffect ; ITEM_AB
dw EvoStoneEffect ; ANTIQUE_POT
dw NoEffect ; UP_GRADE
dw RestoreHPEffect ; BERRY
dw RestoreHPEffect ; GOLD_BERRY