Add trainers to Celadon University, add two new salesmen, etc

Overall completes Celadon University sans a problem with sprites being a bit corrupted until you leave. New Magikarp Salesman-esque events in other pokecenters which is kinda neat
This commit is contained in:
May Evans 2022-09-27 16:06:13 +01:00
parent 89bb05b2dc
commit 19d5f2293c
27 changed files with 478 additions and 30 deletions

View file

@ -1,8 +1,8 @@
CeladonUniversityOutside_Script:
jp EnableAutoTextBoxDrawing
call EnableAutoTextBoxDrawing
ld hl, CeladonUniversityOutsideTrainerHeaders
ld de, CeladonUniversityOutside_ScriptPointers
; ld a, [wCeladonUniversityOutsideCurScript]
; ld a, [wCeladonUniversityOutsideCurScript] these caused the trainers to have lines of sight?
; call ExecuteCurMapScriptInTable
; ld [wCeladonUniversityOutsideCurScript], a
ret
@ -14,6 +14,12 @@ CeladonUniversityOutside_ScriptPointers:
CeladonUniversityOutside_TextPointers:
dw CeladonUniversityOutsideText1
dw CeladonUniversityOutsideText2
dw CeladonUniversityOutsideText3
dw CeladonUniversityOutsideText4
dw CeladonUniversityOutsideNPC1
dw CeladonUniversityOutsideNPC2
dw CeladonMagikarp
CeladonUniversityOutsideTrainerHeaders:
def_trainers 2
@ -23,13 +29,97 @@ CeladonUniversityOutsideTrainerHeader1:
trainer EVENT_BEAT_CELADON_UNIVERSITY_OUTSIDE_TRAINER_1, 3, CeladonUniversityOutsideBattleText1, CeladonUniversityOutsideEndBattleText1, CeladonUniversityOutsideAfterBattleText1
CeladonUniversityOutsideTrainerHeader2:
trainer EVENT_BEAT_CELADON_UNIVERSITY_OUTSIDE_TRAINER_2, 3, CeladonUniversityOutsideBattleText1, CeladonUniversityOutsideEndBattleText1, CeladonUniversityOutsideAfterBattleText1
CeladonUniversityOutsideTrainerHeader3:
trainer EVENT_BEAT_CELADON_UNIVERSITY_OUTSIDE_TRAINER_3, 3, CeladonUniversityOutsideBattleText1, CeladonUniversityOutsideEndBattleText1, CeladonUniversityOutsideAfterBattleText1
db -1 ; end
CeladonUniversityOutsideText1: ; trainer 0
CeladonUniversityOutsideText1: ; Starter girl
text_asm
ld hl, CeladonUniversityOutsideYesNo1
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
jr nz, .refused
ld hl, CeladonUniversityOutsideTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
jr .done
.refused
ld hl, CeladonUniversityRefuse
jr .done
.done
ld hl, CeladonUniversityOutsideAfterBattleText1
call PrintText
jp TextScriptEnd
CeladonUniversityOutsideText2: ; Porygon guy
text_asm
ld hl, CeladonUniversityOutsideYesNo2
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
jr nz, .refused
ld hl, CeladonUniversityOutsideTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
jr .done
.refused
ld hl, CeladonUniversityRefuse
jr .done
.done
ld hl, CeladonUniversityOutsideAfterBattleText1
call PrintText
jp TextScriptEnd
CeladonUniversityOutsideText3: ; Golem guy
text_asm
ld hl, CeladonUniversityOutsideYesNo3
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
jr nz, .refused
ld hl, CeladonUniversityOutsideTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
jr .done
.refused
ld hl, CeladonUniversityRefuse
jr .done
.done
ld hl, CeladonUniversityOutsideAfterBattleText1
call PrintText
jp TextScriptEnd
CeladonUniversityOutsideText4: ; Mt Moon guy
text_asm
ld hl, CeladonUniversityOutsideYesNo4
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
jr nz, .refused
ld hl, CeladonUniversityOutsideTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
jr .done
.refused
ld hl, CeladonUniversityRefuse
jr .done
.done
ld hl, CeladonUniversityOutsideAfterBattleText1
call PrintText
jp TextScriptEnd
CeladonUniversityOutsideNPC1:
text_far _CeladonUniversityOutsideNPC1
text_end
CeladonUniversityOutsideNPC2:
text_far _CeladonUniversityOutsideNPC2
text_end
CeladonUniversityOutsideBattleText1:
text_far _CeladonUniversityOutsideBattleText1
@ -43,4 +133,32 @@ CeladonUniversityOutsideAfterBattleText1:
text_far _CeladonUniversityOutsideAfterBattleText1
text_end
CeladonUniversityOutsideYesNo1:
text_far _CeladonUniversityOutsideYesNo1
text_end
CeladonUniversityOutsideYesNo2:
text_far _CeladonUniversityOutsideYesNo2
text_end
CeladonUniversityOutsideYesNo3:
text_far _CeladonUniversityOutsideYesNo3
text_end
CeladonUniversityOutsideYesNo4:
text_far _CeladonUniversityOutsideYesNo4
text_end
CeladonUniversityRefuse:
text_far _CeladonUniversityRefuse
text_end
CeladonMagikarp:
text_far _CeladonMagikarp
text_asm
ld a, MAGIKARP
call PlayCry
call WaitForSoundToFinish
jp TextScriptEnd
text_end ; unused

View file

@ -0,0 +1,84 @@
CeladonUniversityPokecenter_Script:
call Serial_TryEstablishingExternallyClockedConnection
jp EnableAutoTextBoxDrawing
CeladonUniversityPokecenter_TextPointers:
dw CeladonUniversityHealNurseText
dw CeladonUniversityPokecenterText2
dw CuboneSalesmanText
dw CeladonUniversityTradeNurseText
CeladonUniversityTradeNurseText:
script_cable_club_receptionist
CeladonUniversityHealNurseText:
script_pokecenter_nurse
CeladonUniversityPokecenterText2:
text_far _CeladonUniversityPokecenterText4
text_end
CuboneSalesmanText:
text_asm
CheckEvent EVENT_BOUGHT_CUBONE, 1
jp c, .alreadyBoughtCubone
ld hl, .Text1
call PrintText
ld a, MONEY_BOX
ld [wTextBoxID], a
call DisplayTextBoxID
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
jp nz, .choseNo
ldh [hMoney], a
ldh [hMoney + 2], a
ld a, $5
ldh [hMoney + 1], a
call HasEnoughMoney
jr nc, .enoughMoney
ld hl, .NoMoneyText
jr .printText
.enoughMoney
lb bc, CUBONE, 17
call GivePokemon
jr nc, .done
xor a
ld [wPriceTemp], a
ld [wPriceTemp + 2], a
ld a, $5
ld [wPriceTemp + 1], a
ld hl, wPriceTemp + 2
ld de, wPlayerMoney + 2
ld c, $3
predef SubBCDPredef
ld a, MONEY_BOX
ld [wTextBoxID], a
call DisplayTextBoxID
SetEvent EVENT_BOUGHT_CUBONE
jr .done
.choseNo
ld hl, .RefuseText
jr .printText
.alreadyBoughtCubone
ld hl, .Text2
.printText
call PrintText
.done
jp TextScriptEnd
.Text1
text_far _CuboneSalesmanText1
text_end
.RefuseText
text_far _CuboneSalesmanNoText
text_end
.NoMoneyText
text_far _CuboneSalesmanNoMoneyText
text_end
.Text2
text_far _CuboneSalesmanText2
text_end

View file

@ -7,6 +7,7 @@ RockTunnelPokecenter_TextPointers:
dw RockTunnelPokecenterText2
dw RockTunnelPokecenterText3
dw RockTunnelTradeNurseText
dw DittoSalesmanText
RockTunnelHealNurseText:
script_pokecenter_nurse
@ -21,3 +22,68 @@ RockTunnelPokecenterText3:
RockTunnelTradeNurseText:
script_cable_club_receptionist
DittoSalesmanText:
text_asm
CheckEvent EVENT_BOUGHT_DITTO, 1
jp c, .alreadyBoughtDitto
ld hl, .Text1
call PrintText
ld a, MONEY_BOX
ld [wTextBoxID], a
call DisplayTextBoxID
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
jp nz, .choseNo
ldh [hMoney], a
ldh [hMoney + 2], a
ld a, $5
ldh [hMoney + 1], a
call HasEnoughMoney
jr nc, .enoughMoney
ld hl, .NoMoneyText
jr .printText
.enoughMoney
lb bc, DITTO, 23
call GivePokemon
jr nc, .done
xor a
ld [wPriceTemp], a
ld [wPriceTemp + 2], a
ld a, $5
ld [wPriceTemp + 1], a
ld hl, wPriceTemp + 2
ld de, wPlayerMoney + 2
ld c, $3
predef SubBCDPredef
ld a, MONEY_BOX
ld [wTextBoxID], a
call DisplayTextBoxID
SetEvent EVENT_BOUGHT_DITTO
jr .done
.choseNo
ld hl, .RefuseText
jr .printText
.alreadyBoughtDitto
ld hl, .Text2
.printText
call PrintText
.done
jp TextScriptEnd
.Text1
text_far _DittoSalesmanText1
text_end
.RefuseText
text_far _DittoSalesmanNoText
text_end
.NoMoneyText
text_far _DittoSalesmanNoMoneyText
text_end
.Text2
text_far _DittoSalesmanText2
text_end